@i_want_to_know_everything

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

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

Как из него сделать такой?
array( "Австралия"=> array(
				"Виктория" => array(
					"Бичворз"
					"Джилонг"
					"Долина Ярра"
				),
				"Долина Хантер"=>array(),
				"Западная Австралия"=>array(
					"Греат Саусерн"
					"Маргарет Ривер"
				)
			)
		)
  • Вопрос задан
  • 120 просмотров
Решения вопроса 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);


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

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

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

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