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