Сохранение значений из нескольких массивов в один массив в переполнении стека

Я пытаюсь поместить значения из нескольких массивов в одну строку, а затем эти строки помещаются в новый массив.

В приведенном ниже коде я перебираю XML-файл. Если я помещу элемент $ p в цикл прямо под ним, он вернет мне эту группу массивов:

array (4)
id => "1" (5)
number => "number example" (10)
name => " name example " (37)
array (4)
id => "2" (4)
number => "number example 1" (10)
name => " name example 1" (56)
array (4)
id => "3" (5)
number => "number example 2" (12)
name => "name example 2" (40)
array (4)
id => "4" (5)
number => "number example 3" (14)
name => "name example 3" (34)

Теперь вот код цикла, о котором я говорю выше.

$array=[];
foreach ($array['a']['b']['c'] as $p) {
$array[] = [
$p["id"]=>$p["name"] . $p["number"]
]
}

Проблема моего кода в том, что он возвращает мне эту группу других массивов:

array (4)
0 => array (1)
1=> "number namename example 1" (21)
1 => array (1)
2 => "number namename example 2" (21)
2 => array (1)
3 => "number namename example 3" (21)
3 => array (1)
4 => "number namename example 4" (21)

Но цель, которую я пытаюсь достичь, состоит в следующем:

array (4)
1 => "number namename example 1" (21)
2 => "number namename example 2" (21)
3 => "number namename example 3" (21)
4 => "number namename example 4" (21)

0

Решение

Измените цикл следующим образом:

foreach ($array['a']['b']['c'] as $p) {
$array[$p['id']] = $p["name"] . $p["number"];
}
1

Другие решения

Попробуйте эту функцию php array_merge:

$arr1 = array(1,2);
$arr2 = array(3,4);
$res = array_merge($arr1, $arr2);
print_r($res);
0

$array=[];
foreach ($array['a']['b']['c'] as $p) {
$array[$p[$id]] = [$p["name"] . $p["number"]];
}
0

Исправление:

foreach ($array['a']['b']['c'] as $p) {
$array[$p['id']] = $p["name"] . $p["number"];
}

Здесь вы добавляете строка как элемент массива под определенный ключ $p['id'],

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector