Coding with Creativini :
I have two arrays:
$browser = array("firefox", "opera", "edge");
$version = array("10", "12", "14");
I want to concatenate them such a way that the final array should be:
array(0=>array("name"=>"firefox", "version"=>"10"), 1=>array("name"=>"opera", "version"=>"12"), 2=>array("name"=>"edge", "version"=>"14"));
The code can contain any builtin or user defined function. I have tried using:
$browser = array("firefox","opera","edge");
$version = array("10","12","14");
foreach($browser as $key=>$values){
if(!isset($array)){
$array = array("name"=>$browser[$key],"version"=>$version[$key]);
}else{
$array = array($array,array("name"=>$browser[$key],"version"=>$version[$key]));
}
}
print_r($array);
And the output I got was:
Array ( [0] => Array ( [0] => Array ( [name] => firefox [version] => 10 ) [1] => Array ( [name] => opera [version] => 12 ) ) [1] => Array ( [name] => edge [version] => 14 ) )
Also note that this code is in PHP and should work for at least 10 arrays length data.
AbraCadaver :
I would just map the arrays:
$result = array_map(function($b, $v) {
return ['browser' => $b, 'version' => $v];
}, $browser, $version);
You can also use an array for dynamic keys:
$keys = ['browser', 'version'];
$result = array_map(function($b, $v) use($keys) {
return array_combine($keys, [$b, $v]);
}, $browser, $version);
However with your code just use the first format in the if
and dynamically append []
:
foreach($browser as $key=>$values){
$array[] = array("name"=>$browser[$key],"version"=>$version[$key]);
}