Хранить значения из нескольких массивов в один массив в PHP - PullRequest
0 голосов
/ 20 декабря 2018

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

В приведенном ниже коде я перебираю 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)

Ответы [ 4 ]

0 голосов
/ 20 декабря 2018

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

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

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

0 голосов
/ 20 декабря 2018
$array=[];
foreach ($array['a']['b']['c'] as $p) {
    $array[$p[$id]] = [$p["name"] . $p["number"]];
}
0 голосов
/ 20 декабря 2018

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

foreach ($array['a']['b']['c'] as $p) {
    $array[$p['id']] = $p["name"] . $p["number"];
}
0 голосов
/ 20 декабря 2018

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

$arr1 = array(1,2);
$arr2 = array(3,4);
$res = array_merge($arr1, $arr2);
print_r($res);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...