Преобразовать массив с строкой столбца CSV формат файла? - PullRequest
0 голосов
/ 06 марта 2020

Я хотел бы преобразовать ниже массива


$array=[
'Name'=>[
'John',
'jessica',
'riya'
        ],
'Age'=>[17,22,32],
'No'=>[1,2,3]
];

Как это для CSV Easy Looping

$user_CSV[0] = array('Name', 'Age','No');
$user_CSV[1] = array('john', '17', 1);
$user_CSV[2] = array('jessica', '22', 2);
$user_CSV[3] = array('riya', '32', 3);```

1 Ответ

1 голос
/ 06 марта 2020

Есть хитрость, которую вы можете использовать с array_map() для поворота строк массива в столбцы. ( См. Этот ответ. ) Как правило, он работает следующим образом:

$result = array_map(null, ...$array);  // It won't directly work on your array

В вашем массиве есть строковые ключи, поэтому его нельзя будет распаковать с помощью ..., но мы можем удалить их с помощью array_values().

$result = array_map(null, ...array_values($array))

Тогда все, что осталось, это объединить полученный результат с ключами для получения строки заголовка.

$result = array_merge([array_keys($array)], $result);

Вы можете комбинировать все это в одном утверждении. Это может быть более читабельным, если вы этого не сделаете, но это просто вопрос мнения.

$result = array_merge([array_keys($array)], array_map(null, ...array_values($array)))
...