Почему значение ключа массива не обновляется?

У меня есть массив под названием $test_dataи хочу обновить ключ ['test_duration'], Однако я не могу сделать это обновление. Рассмотрим следующий массив:

Array
(
    [0] => Array
        (
            [test_id] => 1116
            [test_name] => ques stats
            [test_no_questions] => 50
            [test_duration] => 28800
        )

    [1] => Array
        (
            [test_id] => 1112
            [test_name] => Own Test 1
            [test_no_questions] => 2
            [test_duration] => 7200
        )

)

Я попробовал следующее, но это не сработало:

foreach ($test_data as $key => $value) {
    $value[$key]['test_duration'] = ConvertTimeStampToTimeFormate($value['test_duration']);
}

Если я распечатаю массив после этой манипуляции, он печатает тот же массив, что и раньше. В чем здесь проблема?

3 ответа

Решение

Обновить $test_data вместо $value

foreach ($test_data as $key => $value) {
    $test_data[$key]['test_duration'] = ConvertTimeStampToTimeFormate($value['test_duration']);
}

Вы должны гнездиться дальше.

foreach ($test_data as $arr)
{
  foreach($arr as $k=>$v)
    {
     $value[$k]['test_duration'] = ConvertTimeStampToTimeFormate($value['test_duration']);
    }
}

Используйте как это,

foreach ($test_data as $key => $value) {
                      $test_data[$key]['test_duration'] = ConvertTimeStampToTimeFormate($value['test_duration']);
                    }
Другие вопросы по тегам