2012-10-01 43 views
2

我一直在试图找到类似于array_unique()的程度,或者删除数组中的所有重复项。然而,在这种特殊情况下,我需要一个以逗号分隔的数组作为结果,而不是键值对。如果可以的话,我想要做的就是避免通过循环来执行此操作。没有索引的PHP 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" 
) 

凡AFTE循环完成我做。

$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", 
) 

我在哪里可以再整理出来按照从最早的顺序列表到最新版本..

+0

即使元素在您需要的阵列具有某种索引。你有没有显示这个问题,或输出它/出口? – pp19dd

+0

确实* 3.0.2220 *之前* 2.0.0 *在*最早到最新版本*?你在寻找什么样的分类方法?而对于你的信息,甚至关联数组也有一个索引:) –

+0

'usort()'我在哪里排序版本更大到目前较小,我工作。这种问题并不像我的大脑放屁那样严重,而是因为我问了这个问题而苦恼,这个问题实际上与我从前端实际工作的某些事情有关,而不像我认为的那样实际发生在后端上最初 – chris

回答

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 
} 
+0

我在寻找各种各样的清单,抱歉,那是其中一个早上..但我刚刚解决了我自己的问题,这是我在我正在做的事情的JavaScript方面的一个失误..这让我绊倒了 – chris

+1

好吧,我很高兴你解决了你的困惑:-) – Nelson

0

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