PHP array изменить структуру массива

#php #arrays

#php #массивы

Вопрос:

У меня есть массив в следующей форме,

 Array
(
    [foo] => Array
        (
            [3] => hello
            [1] => world
        )
    [bar] => Array
        (
            [3] => Some other stuff
            [1] => Some more stuff 
        )
    [baz] => Array
        (
            [3] => value
        )
)
  

Как я мог бы получить это в следующей форме:

 Array
(
    [3] => Array
        (    
            [foo] => hello
            [bar] => Some other stuff           
            [baz] => value
        )
    [1] => Array
        (
            [foo] => world
            [bar] => Some more stuff  
        )
)
  

Спасибо

Комментарии:

1. Вы пытались сделать это и не добились успеха?

2. Во втором блоке кода: в чем значение [bar][1] => Some more stuff ?

3. [bar][1] здесь действительно нет смысла. На самом деле, ни один из этих ключей не имеет смысла. Пожалуйста, уточните.

4. Вы могли бы выполнить это примерно за три строки кода с двумя вложенными циклами foreach. Вы пробовали это сами, прежде чем просить нас сделать это за вас?

5. @Джош Дэрроу: Не забудьте принять правильный ответ. Просто поставьте галочку рядом с этим. Если вы не приобретете привычку сейчас, вы будете обречены на этом сайте.

Ответ №1:

 $array;  //<--- assuming this is the array you are starting with

$new_array = array();  //<--- This is the new array you're building

foreach($array as $i=>$element)
{
    foreach($element as $j=>$sub_element)
    {
        $new_array[$j][$i] = $sub_element; //We are basically inverting the indexes
    }
}