Задать вопрос
@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 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 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);


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

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

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

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽