2016-05-25 20 views
2

刪除重複如何從一個數組中刪除重複的,如果它應該只在位置檢查[1](水果名)在編號的排列

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

的foreach父陣列上,每個值添加到新的數組,其中關鍵字爲'[0]'從每個陣列。重複只會覆蓋對方。如果您想將鍵重置爲零,則可以使用'array_values'。 –

+0

如果我有更多的數字/信息比水果名稱怎麼樣?它會繼續工作嗎? – user1273409

+0

哦,我倒退了。您也可以使用鍵[1]創建數組。任何一個都可以工作。 –

回答

1

你可以只的foreach陣列上每個值添加到臨時陣列,其中每個陣列的密鑰是[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

+0

非常感謝。 – user1273409

2

使用array_unique:

$arr = array_unique($arr, SORT_REGULAR); 

的SORT_REGULAR標誌的元素通常比較而不改變類型

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

+0

它不刪除我的重複。 – user1273409

+0

有趣的是[它可以工作](https://3v4l.org/vVgAA),但是手冊特別指出'注意:array_unique()不適用於多維數組,這就是。 –

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));

缺貨沽:

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

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

)