2016-08-17 64 views
0

還有一個數組,如何使數組的key與id相同?PHP foreach array key

Array 
(
    [0] => Array 
     (
      [id] => 1 
      [title] => Phones 
      [parent] => 0 
     ) 

    [1] => Array 
     (
      [id] => 2 
      [title] => Apple 
      [parent] => 1 
     ) 

    [2] => Array 
     (
      [id] => 5 
      [title] => Samsung 
      [parent] => 1 
     ) 
) 

我試過這樣做,但事實證明相反,id變得與數組鍵相同。它應該是相反的。

foreach ($statement as $key => $value) { 
    $statement[$key]['id'] = $key; 
} 
+0

參見:http://stackoverflow.com/q/1494953/3933332 – Rizier123

回答

0

,你錯了的部分是$鍵的使用。請看到$鍵指的是主陣列即0,1的鍵,2.

由於我們需要對應於密鑰ID的值,$值[「ID」] 變的關鍵我們的結果數組$ newArray。只需使用一個新變量 並將其存儲。

代碼:

$newArray = array(); 
foreach ($statement as $value) { 
    $newArray[$value['id']] = $value; 
} 

輸出:

Array 
(
    [1] => Array 
    (
     [id] => 1 
     [title] => Phones 
     [parent] => 0 
    ) 
    [2] => Array 
    (
     [id] => 2 
     [title] => Apple 
     [parent] => 1 
    ) 

    [5] => Array 
    (
     [id] => 5 
     [title] => Samsung 
     [parent] => 1 
    ) 
) 
+0

謝謝! .. :) –

0
foreach($array as $key => $val){ 
$new_array[$val['id']] = $val; 
} 

$array = $new_array; 
+0

要注意,如果你不這樣做有唯一的ID,你只能找到新陣列的最後一個值。另外,接受回答:) – sathia