Задать вопрос
@artwerty

Как преобразовать двумерный массив в одномерный PHP?

Здравствуйте.

Уже пару часов голову ломаю, никак не могу понять как решить, вроде банальную задачу. У меня имеется вот такой, двумерный массив:
$arr = Array(
	0 => Array(
		0 => 'name 0',
		1 => 'name 1',
		2 => 'name 2'
	),
	1 => Array(
		0 => 100,
		1 => 200,
		2 => 300
	)
);

Хотелось получить примерно такой результат:
$arr = Array(
	0 => Array(
		0 => 'name 0',
		1 => 100,
	),
	1 => Array(
		0 => 'name 1',
		1 => 200,
	),
	2 => Array(
		0 => 'name 2'
		1 => 300
	)
);

Подскажите, подобная задумка средствами PHP реализуемо? Если да, то можете написать, какие средства для реализации данной задумки использовать?
  • Вопрос задан
  • 5660 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 3
GM_pAnda
@GM_pAnda
Бездельник
Точно такой массив какой вы хотите
$arrOne = Array(
  0 => Array(
    0 => 'name 0',
    1 => 'name 1',
    2 => 'name 2'
  ),
  1 => Array(
    0 => 100,
    1 => 200,
    2 => 300
  )
);
$arrTwo = array();

foreach ($arrOne as $keys => $names) { 
	foreach ($names as $key => $name) {
		$arrTwo[$key][] = $name;
		continue;
	}
	

}

var_dump($arrTwo);
Ответ написан
Комментировать
Можно получить несколько иной результат, но почти тот, что вам нужен:
$arr = Array(
  0 => Array(
    0 => 'name 0',
    1 => 'name 1',
    2 => 'name 2'
  ),
  1 => Array(
    0 => 100,
    1 => 200,
    2 => 300
  )
);
$c = array_combine($arr[0], $arr[1]);
print_r($c);
Ответ написан
Комментировать
Henryh
@Henryh
Веб-программист
Можно через foreach
$newarr = array();

foreach ($arr as $arrkey => $arr) {
    foreach ($arr as $key => $val) {
        $newarr[$key][$arrkey] = $val;
    }
}

print_r($newarr);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы