2016-05-31 99 views
0

我有一個PHP數組,看起來像這樣從多維索引陣列陣列,刪除基於重複的值

[["a","b"],["e","j"],["a","s"]] 

我需要它看起來像這樣,

[["a","b"],["e","j"]] 

或本,

[["e","j"],["a","s"]] 

我不能有兩個包含相同「0」索引的內部數組。只要保留一個內部數組就沒關係。我怎樣才能通過這個數組並刪除包含相同的「0」索引的內部數組?

謝謝!

回答

0

您可以簡單地通過兩個循環遍歷數組。比方說,這是你的數據:

$data = array(
    array('a', 'b'), 
    array('e', 'j'), 
    array('a', 's'), 
    array('a', 't'), 
    array('c', 't'), 
    array('a', 'h'), 
    array('c', 'e'), 
    array('f', 'g') 
); 

然後你繼續前進,通過一切迴路,並取消它,如果它是相同的值。

$count = count($data); 
foreach($data as $index => $array){ 
    for($i=$index + 1; $i<$count; $i++) 
     if(isset($array[0]) && isset($data[$i][0]) && $array[0] == $data[$i][0]) 
      unset($data[$i]); 
} 

$data環後var_dump是:

array(4) { 
    [0]=> 
    array(2) { 
    [0]=> 
    string(1) "a" 
    [1]=> 
    string(1) "b" 
    } 
    [1]=> 
    array(2) { 
    [0]=> 
    string(1) "e" 
    [1]=> 
    string(1) "j" 
    } 
    [4]=> 
    array(2) { 
    [0]=> 
    string(1) "c" 
    [1]=> 
    string(1) "t" 
    } 
    [7]=> 
    array(2) { 
    [0]=> 
    string(1) "f" 
    [1]=> 
    string(1) "g" 
    } 
} 
+0

謝謝你的幫助。你的答案有效,但是如何在使用json_encode輸出答案時刪除數字索引鍵? {「0」:[「a」,「b」],「2」:[「c」,「e」]}我想擺脫「0」和「2」 – linuxisthebest33

+0

@ linuxisthebest33你想要什麼它是?你希望它是「0」還是「1」? –

+0

我想數組返回一個標準的索引數組,如[[「a」,「b」],[「e」,「g」]] – linuxisthebest33

0
<?php 
$array = [["a","b"],["e","j"],["a","s"]]; 
$values = array(); 


foreach ($array as $key => $arrayChild) { 
    foreach ($arrayChild as $val) { 
     if (in_array($val, $values)) { 
      unset($array[$key]); 
     } 
     $values[] = $val; 
    } 
} 
print_r($array); 
?> 

結果:

Array ( 
    [0] => Array ([0] => a [1] => b) 
    [1] => Array ([0] => e [1] => j) 
)