#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
)