如何更新多数组值?

时间:2011-04-20 22:53:19

标签: php arrays

我有这个多维数组,我需要更新一个值。最好的方法是什么?我用2个foreach循环尝试了它,但不确定这是否是正确的方法。

这是有问题的数组。我需要更新每个子数组的美元金额(即加3)。

array(6) { ["Ground"]=> array(2) { [0]=> string(3) "USD" [1]=> string(5) "13.63" } 
           ["3 Day Select"]=> array(2) { [0]=> string(3) "USD" [1]=> string(5) "25.26" } 
           ["2nd Day Air"]=> array(2) { [0]=> string(3) "USD" [1]=> string(5) "32.43" } 
           ["Next Day Air Saver"]=> array(2) { [0]=> string(3) "USD" [1]=> string(5) "63.00" } 
           ["Next Day Air"]=> array(2) { [0]=> string(3) "USD" [1]=> string(5) "68.65" } 
           ["Next Day Air Early AM"]=> array(2) { [0]=> string(3) "USD" [1]=> string(6) "103.68" } } 

4 个答案:

答案 0 :(得分:0)

你的foreach循环方法是正确的,除非你期望数据格式改变,例如拥有更多嵌套级别。如果是这种情况,那么递归函数最适合。

此外,如果预计数据保持一致,您可以这样做:

foreach( $my_array as $index => $row ){
  $my_array[$index][1] += 3;
}

喝彩!

答案 1 :(得分:0)

foreach ($arr as $k=>$row) {
 $arr[$k][1] = floatval($row[1]) + 3;
}

答案 2 :(得分:0)

试试这个:

<?php

foreach($first_array as $first_dem_key)
  $first_array[$first_dem_key][1] = $first_array[$first_dem_key][1] + 3;

?>

答案 3 :(得分:0)

foreach ($array as &$subarray) {
  foreach ($subarray as $key=>&$value) {
    // do whatever you want with $value
    // ...
    $value = 'something else'; // example
    }
  }