2014-02-14 104 views
0

我的问题可能看起来很简单,我可能错过了一些东西。我需要将一个名为$data1的数组中的2个字段另存为一个不同的数组。将2个数组字段保存为新数组?

[cat_id] => 1 
[parent_id] => 0 
[cat_left] => 1 
[options] => 0 
[name] => soccer 
[creator] => 0 

,我需要保存cat_id => name,如:

1 => soccer 

我试图用foreach但我能够做到的就是乱了起来。

foreach($data1 as $k=>$v) 
     { 
      $cat_arr[]= $v['cat_id'] => $v['name']; 
     } 

任何帮助,将不胜感激。

回答

1

我认为,$data1包含您发布的形式的多个子阵列。然后,你可以使用这样的代码:

$cat_arr = array(); 
foreach($data1 as $k=>$v) { 
    $cat_arr[ $v['cat_id'] ]= $v['name']; 
} 
+0

+1事实上,这是正确的答案。 – Rikesh

+0

像魅力一样工作,非常感谢。 – Gurami

0

您可以使用array_map(),这是更优雅:

$data2 = array_map(
    function ($n) { 
     return array($n['cat_id'] => $n['name']); 
    }, 
    $data1 
); 

Fiddle