Есть массив вида:
[
[ключ1] =>
[0] => значение 1
[1] => значение 2
[ключ2] =>
[0] => значение 1
[1] => значение 2
[ключN] =>
[0] => значение 1
[1] => значение 2
]
Как из него получить несколько массивов вида:
[ключ1] => значение 1, [ключ2] => значение 1, [ключN] => значение 1]
[ключ1] => значение 2, [ключ2] => значение 2, [ключN] => значение 2]
Я написал следующее решение, но я уверен существует более изящное. Хочу услышать критику и, возможно, лучшие практики:
$array // исходный массив
$pos = array_slice($array, 1, 1); //запоминаем количество значений
$pos = call_user_func_array('array_merge', $pos);
$k = 0;
for ($i = 0; $i < count($pos); $i++)
foreach ($array as $key => $value) {
$arr[$key] = array_shift(array_slice($value, $i));
$k++;
if ($k == 8) { //количество значений
echo $arr // искомый массив
$k = 0
}
}
foreach((array)$array as $k1=>$v1){
foreach((array)$v1 as $k2=>$v2){
$out[$k2][$k1]=$v2;
}
}
print_r($out);
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости