Reputation: 204
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
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
Reputation:
Change the loop to the following:
foreach ($array['a']['b']['c'] as $p) {
$array[$p['id']] = $p["name"] . $p["number"];
}
Upvotes: 1
Reputation: 1
$array=[];
foreach ($array['a']['b']['c'] as $p) {
$array[$p[$id]] = [$p["name"] . $p["number"]];
}
Upvotes: 0
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