2010-03-18 11 views
0

"url_slug"키와 "foo"키를 사용하여 아래 배열과 배열 당 요소를 반복하는 방법은 무엇입니까? 나는 array_push로 시도했지만 키 이름을 제거합니다 (보이는 것입니까?) foreach ($ k => $ v와 같은 $ array)를 수행해도 그렇게하지 않습니다.다차원 배열에 요소 추가

새 배열은 위의 키/값을 사용하여 3 개 대신 배열 당 4 개의 요소 만 정확히 동일해야합니다.

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

$ 그냥 날 이길! 나는 포인터를 사용하는 것을 피했는데, 아직 이해하지 못했다면 이해해야 할 한 가지 더 있습니다. –

+0

니스, 나는 & nbsp;를 사용해야한다는 것을 알고 ... – stef

+1

* 당신은 * 사용하지 않아도됩니다 - 변수는 foreach 루프 내에서 사용 가능합니다. –

2

이 배열에있는 가정 할

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