How to concatenate two arrays using PHP?

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]);
}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=9703&siteId=1