如何在PHP中更改特定关联数组的值?

时间:2014-01-30 11:46:56

标签: php arrays multidimensional-array associative-array

我有一个名为$test_package_data的动态生成的巨大数组。为了您的理解,我在下面给出了数组$test_package_data的内容。

现在我想要实现的是转换数组键的值

$test_duration = ConvertTimeStampToTimeFormate($some_key['test_duration']);

简而言之,我想更新数组中键['test_duration'] eveywhere的值。但是不了解我应该如何遍历数组并获得所需的结果。

3 个答案:

答案 0 :(得分:4)

如果密钥与'test_duration'匹配,您可以使用array_walk_recursive()并调整值:

array_walk_recursive($test_package_data, function(&$value, $key) {
    if ($key == 'test_duration') {
        $value = ConvertTimeStampToTimeFormate($value);
    }
});

答案 1 :(得分:1)

您可以循环$test_package_data['category_detail'][0]['test_detail']。所以代码就像是,

foreach($test_package_data['category_detail'][0]['test_detail'] as $key => $value){
    $test_package_data['category_detail'][0]['test_detail'][$key]['test_duration'] = 
    ConvertTimeStampToTimeFormate($value['test_duration']]);
}

答案 2 :(得分:0)

虽然array_walk_recursive是最好的,但这也应该有用。

function changValue($dataArray) {
  foreach($dataArray as $key=>$val) {
   if(is_array($val)) {
     return changValue($val);
   } else {
     if ($key == 'test_duration') {
        $value = ConvertTimeStampToTimeFormate($value);
    }
   }
  }
}

changeValue($yourArray);