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

Слияние массивов с сортировкой?

Есть такой массив
array(
	array("Австралия"),
	array("Австралия", "Виктория"),
	array( "Австралия", "Виктория", "Бичворз"),
	array("Австралия", "Виктория", "Джилонг"),
	array( "Австралия", "Виктория", "Долина Ярра"),
	array("Австралия", "Долина Хантер"),
	array("Австралия", "Западная Австралия"),
	array("Австралия", "Западная Австралия", "Греат Саусерн"),
	array("Австралия", "Западная Австралия", "Маргарет Ривер")
)

Как из него сделать такой?
array( "Австралия"=> array(
				"Виктория" => array(
					"Бичворз"
					"Джилонг"
					"Долина Ярра"
				),
				"Долина Хантер"=>array(),
				"Западная Австралия"=>array(
					"Греат Саусерн"
					"Маргарет Ривер"
				)
			)
		)
  • Вопрос задан
  • 121 просмотр
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Skillbox
    PHP-разработчик. Базовый уровень
    3 месяца
    Далее
Решения вопроса 1
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
<?php
$arr = array(
  array("Австралия"),
  array("Австралия", "Виктория"),
  array( "Австралия", "Виктория", "Бичворз"),
  array("Австралия", "Виктория", "Джилонг"),
  array( "Австралия", "Виктория", "Долина Ярра"),
  array("Австралия", "Долина Хантер"),
  array("Австралия", "Западная Австралия"),
  array("Австралия", "Западная Австралия", "Греат Саусерн"),
  array("Австралия", "Западная Австралия", "Маргарет Ривер")
);

$result = [];
foreach($arr as $vals){
    $result[$vals[0]][$vals[1]][] = $vals[2];
}
var_dump($result);


если прям совсем в лоб...

может есть и более кошерный способ, сходу как-то не придумалось ничего подходящего.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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