2013-07-25 34 views
0

我有一個陣列,其由進一步子陣列的像陣列具有相同的元件和抓取一個在PHP

Array 
(
    [0] => MM 
    [1] => CM 
    [2] => Inch 
) 
Array 
(
    [0] => MM 
    [1] => CM 
    [2] => Inch 
) 

由於兩個陣列具有相同的元件,所以我嘗試從that.I取一個嘗試array_unique() ,合併功能,但沒有成功。我可以通過使用foreach循環刪除一個數組,但我想知道,如果它是可能的單個語句,就像一些bulitin函數或一行代碼不超過that.Hopes得到了我的觀點。我試圖減少我的代碼

回答

1

如果我得到你的問題,你正試圖刪除重複的子陣列。試試這個

$input = array_map("unserialize", array_unique(array_map("serialize", $input))); 

array_unique從數組中刪除重複項。

array_map需要兩個參數

array_map (callable $callback , array $arr1 [, array $... ]) 

它遞歸運行陣列

基本上代碼序列化陣列的內容(每個子陣列中的這種情況下)上的回調,刪除重複然後反序列化內容來重建原始的陣列

這裏更多:How to remove duplicate values from an array in PHP

0

使用如下的只有一個語句

<?php 
    $arr1 = array('MM','CM','Inch'); 
    $arr2 = array('MM','CM','Inch'); 
    $array = array_values(array_unique(array_merge($arr1,$arr2))); 

echo "<pre]>"; 
print_r($array); 
exit; 

?> 

輸出

Array 
(
    [0] => MM 
    [1] => CM 
    [2] => Inch 
) 
0

在這之前...我編輯了一點你的代碼。我用這樣的代碼::

<?php 
    $a = Array(
     Array(
      0 => MM, 
      1 => CM, 
      2 => Inch 
     ), 
     Array(
      0 => MM, 
      1 => CM, 
      2 => Inch 
     ) 
    ); 

    print_r($a); 
    echo "<br/><br/><br/>"; 

    print_r(array_unique($a)); 
    ?> 

而且從我的代碼導致::

Array ([0] => Array ([0] => MM [1] => CM [2] => Inch) [1] => Array ([0] => MM [1] => CM [2] => Inch)) 


    Array ([0] => Array ([0] => MM [1] => CM [2] => Inch)) 

希望這將有助於。 此致敬禮。

相關問題