2010-07-28 59 views
2

创造新的阵列我有这个多维数组:从多维数组

Array (
    [0] => Array ( 
     [id] => 1 
     [list_name] => List_Red 
    ) 
    [1] => Array (
     [id] => 2 
     [list_name] => List_Blue 
    ) 
) 

...我想从它创建一个只包含[ID]的一个新的数组。

我将不胜感激很多,如果你们能帮助我事先知道^^

感谢。

回答

2

@fabrik您的解决方案确实是正常工作,但它也是不正确的,因为PHP将抛出一个E_WARNING告诉你,你要追加到还不存在的数组。 总是使用初始化您的变量。

$newList = array(); 
foreach($myList as $listItem) { 
    $newList[$listItem['id']] = $listItem['list_name']; 
} 

这是现在所有list_names的列表,格式如下。

Array (
    1 => List_Red 
    2 => List_Blue 
) 

您更容易一起工作,你现在可以遍历它像这样..

foreach($newList as $itemID => $itemName) { 
    echo "Item ID: $itemID - Item Name: $itemName<br>"; 
} 
+0

谢谢。我从中学到了很多东西:) – pitic 2010-07-28 16:22:42

1
foreach($array as $label => $data) 
{ 
    $final[] = $data['id']; 
} 
+0

工作就像一个魅力!谢谢! :) – pitic 2010-07-28 09:41:20

+0

不客气:) – fabrik 2010-07-28 09:42:23

1

您可以使用array_map这样的:

$new_array = array_map(function($a) { return $a['id']; }, $orig_array); 

这是假设PHP 5.3 ,对于PHP < 5.3您必须使用create_function:

$new_array = array_map(create_function('$a', 'return $a["id"];'), $orig_array);