2

我一直在尝试找到类似于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",
)

然后我可以在哪里整理它以按最早到最新版本的顺序列出..

4

2 回答 2

4

这个:

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
}
于 2012-10-01T18:28:18.643 回答
0

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

于 2012-10-01T18:26:34.353 回答