несколько массивов в один массив php

#php #arrays

#php #массивы

Вопрос:

возможно ли в php изменить этот массив

 Array
(
    [0] => Array
        (
            [image_name] => image1
        )

    [1] => Array
        (
            [image_name] => image2
        )

    [2] => Array
        (
            [image_name] => image3

        )

)
  

для такого типа массива . в котором их имена индексов совпадают.

 Array
(
    [image_name1] => image1
    [image_name2] => image2
    [image_name3] => image3 
)
  

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

1. Вы не можете, если image_name это одно и то же.

2. То, как вы себе это представляли, невозможно. Массив может иметь одно значение для одного ключа. Он не может содержать image_name ключ несколько раз. Что бы $array['image_name'] вернулось?

3. php.net//manual/en/function . array-merge.php

4. Вы могли бы создать $arary['image_name'] массив значений, но способ, который вы показываете в своем примере, невозможен.

5. Что не так с простым перечислимым индексом? Зачем вам нужен ассоциативный индекс с увеличивающимися числами?

Ответ №1:

Просто используйте foreach цикл, подобный этому:

 // Set a test array.
$test_array = array();
$test_array[] = array('image_name_1' => 'image1');
$test_array[] = array('image_name_2' => 'image2');
$test_array[] = array('image_name_3' => 'image3');

// Roll through the array amp; set a new array.
$new_array = array();
foreach($test_array as $parent_key => $parent_value) {
  foreach($parent_value as $child_key => $child_value) {
    $new_array[$child_key] = $child_value;
  }
}

// Dump the output for debugging.
echo '<pre>';
print_r($new_array);
echo '</pre>';
  

И конечные результаты:

 Array
(
    [image_name_1] => image1
    [image_name_2] => image2
    [image_name_3] => image3
)