2014-07-06 81 views
-3

我試圖只保留唯一的ID在我的數組,但我有它的麻煩..PHP unique_array得到錯誤的結果

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

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

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

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

    [4] => Array 
     (
      [0] => 31 
     ) 

) 

這是我的陣列,當我使用 -

$unique = array_unique($myArray); 

我得到only-

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

我需要它同時顯示ID爲1和31

請問我做錯了什麼?

的代碼 -

$myArray= array(); 

$myArray= $this->data['vendor_id']; 

$unique = array_unique($myArray); 

print_r($unique); 
+3

如果選中,說明array_unique'如何'工作你就知道爲什麼會發生一定的文檔。但是,由於某種原因,你並沒有做出關於它如何工作的猜測(錯誤)。以防萬一您不知道PHP文檔託管在哪裏:http://php.net/array_unique – zerkms

回答

0

嘗試此)

<?php 
$data = array(
    1 => array(
     0 => 1 
    ), 
    2 => array(
     0 => 1 
    ), 
    3 => array(
     0 => 1 
    ), 
    4 => array(
     0 => 31 
    ) 
); 

$items = array(); 

foreach($data as $item) { 
    $items[$item[0]] = $item[0]; 
} 

print_r($items); 
+0

爲什麼downvote ??? – Zemistr

+2

我不是那個低調的人,但我可以說你的回答既不能解釋問題,也不會增加任何價值。這可能是重構數組的一種解決方案,但顯然不是OP要求的。 – Onion

+0

謝謝Zemistr,它的工作原理! :) – Neit

0

這是因爲每一個數組項的值是一個數組。 array_unique()函數實質上刪除重複項,並只保留數組的第一次出現。

進一步閱讀看到這個頁面:PHP documentation: array_unique()