2010-03-18 58 views
0

如何循環遍歷下面的數組和每個數組的元素,並使用鍵「url_slug」和值「foo」?我嘗試使用array_push,但是擺脫了關鍵名稱(它似乎?)做一個foreach($ array = $ v => $ v)也沒有做到這一點,我想。將元素添加到多維數組中

新數組應該完全相同,每個數組只能有4個元素,而不是3個,上面的鍵/值。

Array 
(
    [0] => Array 
     (
      [name_en] => Test 5 
      [url_name_nl] => test-5 
      [cat_name] => mobile 
     ) 

    [1] => Array 
     (
      [name_en] => Test 10 
      [url_name_nl] => test-10 
      [cat_name] => mobile 
     ) 

    [2] => Array 
     (
      [name_en] => Test 25 
      [url_name_nl] => test-25 
      [cat_name] => mobile 
     ) 

) 

編輯:完整的工作解決方案。稍微複雜一點比原先描述

foreach ($prods as $key => &$value) 
     { 
      if($key == "cat_name") $slug = $value['cat_name'];   
      $url_slug = $this->lang->line($slug);  
      $value['url_slug'] = $url_slug; 
     } 

回答

5

您需要修改在foreach價值。在foreach中使用&。

試試這個:

foreach ($array as $key => &$value) 
    $value['url_slug'] = $url_slug; 
+0

只是打我!我避免使用指針,因爲如果你還沒有弄明白的話,它只是一個理解。 – 2010-03-18 15:27:42

+0

不錯,我知道我不得不使用&... – stef 2010-03-18 15:35:07

+1

你不*使用* - 該變量在foreach循環中可用。 – 2010-03-18 15:39:52

2

假設你的陣列是在$ a

foreach($a AS $key=>$value) { 
    $a[$key]['url_slug'] = 'foo'; 
}