PHP array_unique 没有索引

标签 php arrays

我一直在尝试找到类似于array_unique()的东西,或者从数组中删除所有重复项。然而,在这种特殊情况下,我需要一个逗号分隔的数组作为结果,而不是一个键值对。如果可以的话,我想做的是避免通过循环来运行它。

因此,如果有类似 array_unique() 的东西,或者我可以在之后将其应用于我的数组以去除数字索引的东西,那么我会倾听建议。

目前,我正在通过循环构建初始数组,该外观循环 5 到 150,000 个条目,其中一个特定条目可以具有大约 1,000 个可能的 3 点样式版本号中的任何一个。这就是我正在构建的这个数组。所以我在数组中放入了许多重复项

示例:

$myarray = array();
foreach($obj as $prod)
{
   //cycling over the master loop adding all my other stuff and building it out..
   $myarray[] = $prod['version'];
}

这给了我一个相当大的数组,格式是我想要的

Array(
   "1.0.0",
   "1.0.1",
   "3.0.2220",
   "2.0.0",
   "2.0.1",
   "1.8.11",
   "3.0.2220",
   "3.0.2220",
   "2.0.0",
   "2.0.0",
   "2.0.0"
)

循环完成后我会这样做。

$myarray = array_unique($myarray);

这给我留下了一个像这样的数组

Array(
  [0] = "1.0.0",
  [1] = "1.0.1",
  [2] = "3.0.2220",
  [3] = "2.0.0",
  [4] = "2.0.1",
  [5] = "1.8.11",
)

这不是想要的,最终结果是想要的..

Array(
   "1.0.0",
   "1.0.1",
   "3.0.2220",
   "2.0.0",
   "2.0.1",
   "1.8.11",
)

然后我可以将其按最早到最新版本的顺序列出。

最佳答案

这个:

Array(
  [0] = "1.0.0",
  [1] = "1.0.1",
  [2] = "3.0.2220",
  [3] = "2.0.0",
  [4] = "2.0.1",
  [5] = "1.8.11",
)

还有这个:

Array(
   "1.0.0",
   "1.0.1",
   "3.0.2220",
   "2.0.0",
   "2.0.1",
   "1.8.11",
)

相同的事情,在PHP中所有数组都有一个索引,在最后一个例子中只是没有打印它们,但它们在那里,如果你没有明确指定索引,它们只是从零开始的连续整数,就像第一个示例一样。

在你的最后一个例子中,显然没有索引,如果我们称之为$array,我们可以执行以下操作来打印其索引:

foreach ($array as $key => $value) {
   echo $key; //this will print the indexes of the array
}

关于PHP array_unique 没有索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12678809/

相关文章:

php - 与 PHP 和 mySQL 的异步事务

javascript - (localhost) 元 http-equiv 不适用于 Android 浏览器

java - 什么类允许我操纵索引和值?

linux - Bash:如何截断数组?

ios - 当对象包含其他对象的数组时,如何解析 JSON?

c - 在函数中传递二维数组 - 从 C 中的函数返回二维数组

javascript - ajax 抛出错误并得到正确的结果

php - 错误未记录到php错误日志中

javascript - 如何在 Chase Paymentech 的 Hosted Payment Form 中使用响应函数?

javascript - useState 如何迭代数组