2010-07-28 89 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);