ragulin
ragulin

Reputation: 204

Store values from multiple arrays into one array in PHP

I am trying to put values from several arrays into one string and then those strings put into a new array.

In the code bellow, I loop through a XML file. If I dump the $p element inside the loop just right under, it gives me back this group of arrays:

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)

Now, here is the loop code, which I talk about right above.

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

The problem of my code is, that it returns me this group of another arrays:

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)

But the goal I try to achieve, is this kind of array:

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)

Upvotes: 0

Views: 2237

Answers (4)

u_mulder
u_mulder

Reputation: 54796

The fix is:

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

Here you add a string as element of array under a certain key $p['id'].

Upvotes: 0

user10492760
user10492760

Reputation:

Change the loop to the following:

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

Upvotes: 1

vaidasR
vaidasR

Reputation: 1

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

Upvotes: 0

Rakesh P
Rakesh P

Reputation: 458

Try this php array_merge function:

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

Upvotes: 0

Related Questions