I
I
i_want_to_know_everything2017-02-15 21:49:16
PHP
i_want_to_know_everything, 2017-02-15 21:49:16

Merging arrays with sort?

There is such an array

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

How to make it like this?
array( "Австралия"=> array(
        "Виктория" => array(
          "Бичворз"
          "Джилонг"
          "Долина Ярра"
        ),
        "Долина Хантер"=>array(),
        "Западная Австралия"=>array(
          "Греат Саусерн"
          "Маргарет Ривер"
        )
      )
    )

Answer the question

In order to leave comments, you need to log in

1 answer(s)
A
Alexander Aksentiev, 2017-02-15
@i_want_to_know_everything

<?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);

if it’s completely straight on the forehead ...
maybe there is a more kosher way, somehow I didn’t come up with anything suitable right away.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question