2012-09-14 94 views
0

我有一個多維數組,我想爲每個數組創建新的變量後,賦予一個函數。我真的不知道如何使用這種數組的foreach。這裏是我的代碼到目前爲止:foreach和多維數組

$main_array = array 
(
    [first_array] => array 
     (
      ['first_array1'] => product1 
      ['first_arrayN'] => productN 
     ) 

    [nth_array] => Array 
     (
      [nth_array1] => date1 
      [nth_arrayN] => dateN 
     ) 
) 

function getresult($something){ 
     ## some code 
     }; 

foreach ($main_array as ["{$X_array}"]["{$key}"] => $value) { 
    $result["{$X_array}"]["{$key}"] = getresult($value); 
    echo $result["{$X_array}"]["{$key}"]; 
    }; 

任何幫助,將不勝感激!

+0

嵌套的foreach循環怎麼樣? – Ariel

回答

2
foreach ($main_array as &$inner_array) { 
    foreach ($inner_array as &$value) { 
     $value = getresult($value); 
     echo $value; 
    } 
} 

unset($inner_array, $value); 

注意&,這使得變量的引用和修改使得原始數組中反映。

注意:建議使用unset,因爲最後一個值的引用將留在循環之後,並且如果您正在重用變量,可能會導致意外的行爲。

+0

非常感謝您的回答。我有最後一個請求,我希望能夠打印$ inner_array但它返回我「數組」。 – Mat

0
foreach($main_array AS $key=>$array){ 
    foreach($array AS $newKey=>$val){ 
     $array[$newKey] = getResult($val); 
    } 
    $main_array[$key] = $array; 
}