繁体   English   中英

PHP array_unique没有索引

[英]PHP array_unique without index

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

因此,如果有诸如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
}

您想要一个没有键的数组吗? 每个数组都有键。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM