2016-01-19 36 views
1

我有這樣的陣列是否可以合併單個數組中的類似內容?

Array 
    (
    [0] => Array 
    (
     [0] => A 
     [1] => B 
     [2] => C 
    ) 

[1] => Array 
    (
     [0] => A 
     [1] => C 
     [2] => B 
    ) 

[2] => Array 
    (
     [0] => B 
     [1] => A 
     [2] => C 
    ) 

[3] => Array 
    (
     [0] => B 
     [1] => C 
     [2] => A 
    ) 
) 

每個陣列中的內容是相似的,是有可能合併它們,並具有如下一個單個陣列?

Array 
    (
    [0] => Array 
    (
     [0] => A 
     [1] => B 
     [2] => C 
    ) 
) 

是否有PHP函數來處理這個問題?

回答

1

使用array_unique()

<?php 
$a = array(
    array('A', 'B', 'C'), 
    array('A', 'C', 'B'), 
    array('B', 'A', 'C'), 
    array('B', 'C', 'A') 
); 
$c = array(); 
foreach ($a as $b) { 
    if (! empty($b)) { 
    foreach ($b as $d) { 
     $c[] = $d; 
    } 
    } 
} 
$c = array_unique($c); 
echo '<pre>';print_r($c);echo '</pre>'; 
?> 

輸出:

Array 
(
    [0] => A 
    [1] => B 
    [2] => C 
) 
0

您可以如下操作:

$final = $newArr = array(); 
foreach ($a as $val) { 
    foreach ($val as $value) 
    $newArr[] = $value;  
} 
$final = array_unique($newArr); 
print_r($final); 
1

是的,它是可能的:

array_unique (call_user_func_array ('array_merge', $yourArray)); 

你並不需要創建自定義函數,這裏是一個工作示例:

$a = array(
array('a','b','c'), array('b','c','a'), array('a','c','b') 
); 

$x = array_unique (call_user_func_array ('array_merge', $a)); 
var_dump($x); 
相關問題