删除编号数组中的重复项

时间:2016-05-25 16:13:44

标签: php arrays duplicates

如果只检查位置[1](水果名称)

,如何从数组中删除重复项?
Array ( 
    [0] => Array ( 
        [0] => 1 
        [1] => Apple
    ) 
    [1] => Array ( 
        [0] => 2 
        [1] => Pineapple 
    ) 
    [2] => Array ( 
        [0] => 1 
        [1] => Apple
    ) 
)

3 个答案:

答案 0 :(得分:2)

使用array_unique:

all_lists = []
init_pt = tlist[0]        
for pt_i, pt in enumerate(tlist):
    if pt == init_pt and pt_i != tlist.index(init_pt):
        all_lists.append(tlist[tlist.index(init_pt):pt_i+1])

SORT_REGULAR标志通常比较元素而不更改类型

  

http://php.net/manual/fr/function.array-unique.php

答案 1 :(得分:1)

您可以直接遍历数组并将每个值添加到临时数组中,其中每个数组的键为[1]。重复值只会相互覆盖。如果您想将密钥重置为数字,则可以在之后使用array_values

以下是一个例子:

<?php
$arr = array ( 
    array (1, 'Apple'),
    array (2, 'Pineapple'),
    array (1, 'Apple')
);
echo "Before:\n";
print_r($arr);

//create a temp array
$tmp = array();
foreach($arr as $v){
    $tmp[$v[1]] = $v;
}
//reset the keys
$arr = array_values($tmp);

echo "\n\nAfter:\n";
print_r($arr);

演示:https://3v4l.org/KCECc

答案 2 :(得分:0)

以下代码可能会对您有所帮助。

$array =array ( 
'0' => array ( '0' => 1, '1' => 'Apple'),
'1' => array ( '0' => 2, '1' => 'Pineapple' ), 
'2' => array ( '0' => 1, '1' => 'Apple') ,
);

$new_array = array();
foreach($array as $values){
    $trimmed_array=array_map('trim',$values);
    $new_array[$values[1]] = $values; 
}

的print_r(array_values($ new_array));

Out Put:

Array
(
  [0] => Array
    (
        [0] => 1
        [1] => Apple
    )

[1] => Array
    (
        [0] => 2
        [1] => Pineapple
    )

)