У меня есть многомерный ассоциативный массив php, который выглядит так:
$transportation_options = Array
(
[0] => Array("label" => "Car", "group" => "start"),
[1]=> Array("label" => "Volvo", "group" => Null),
[2]=> Array("label" => "BMW", "group" => Null),
[3]=> Array("label" => "Saab", "group" => Null),
[4]=> Array("label" => "Land Roover", "group" => Null),
[5]=> Array("label" => "Car", "group" => "end"),
[6]=> Array("label" => "Air Plane", "group" => NULL)
[7]=> Array("label" => "Boat", "group" => "start"),
[8]=> Array("label" => "Ship", "group" => Null),
[9]=> Array("label" => "Yacht", "group" => Null),
[10]=> Array("label" => "Sail Boat", "group" => Null),
[11]=> Array("label" => "Boat", "group" => "end"),
[12]=> Array("label" => "Bicycle", "group" => NULL)
);
Как этот массив можно превратить в этот массив
$transportation_options_rewrite = array
(
array("Car" => array(Volvo,BMW,Saab,Land Roover)),
array("Air Plane")
array("Boat" => array(Ship,Yacht,Sail Boat)),
array("Bicycle")
);
Чтобы я (каким-то образом ) можно сравнить
$transportation_selected = array(Saab,Volvo,Ship,Bicycle,Yacht);
с $ transport_options_rewrite и в конечном итоге получить следующий результат:
Bicycle
Boat: Ship, Yacht
Car: Saab, Volvo
На этом этапе я застрял при перезаписи массива, пытаюсь следовать это пример. Но это не работает из-за многомерного массива.
$start = "start";
$end ="end";
$new_array = [];
$i=0;$go=false;
foreach ($transportation_options_rewrite as $element) {
if($go){
$new_array[$i] = $element;
$i++;
}
if($element==$start){
$go = true;
}
if($element==$end){
$go = false;
}
}
$total_elems_new = count($new_array);
unset($new_array[$total_elems_new-1]);
print_r($new_array);