Вы можете сделать это с помощью array_map
:
// $array is your array
$new_array = array_map(null, $array[0], $array[1], $array[2], $array[3]);
// Then, change keys
$new_array = array_map(function($v) {
return array(
'name' => $v[0],
'type' => $v[1],
'error' => $v[2],
'size' => $v[3]
);
}, $new_array);
Хотя простой цикл может быть быстрее.
РЕДАКТИРОВАТЬ: Пояснения
Первый вызов array_map
, как описано здесь реорганизация массивов и изменение ключей:
Input: array('foo1', 'bar1'), array('foo2', 'bar2')
Output: array('foo1', 'foo2'), array('bar1', 'bar2')
Обратите внимание на значение null
в качестве обратного вызова.
Тогда второй вызов здесь для того, чтобы изменить ключи так, как этого хотел OP, заменив индексированный массив на ассоциативный.