Слияние нескольких ассоциативных массивов в PHP - PullRequest
0 голосов
/ 28 октября 2009

Я не совсем уверен, как это сделать. Допустим, у меня есть 2 ассоциативных массива

$arr1 = array('a' => "1", 'b' => "2", 'c' => "3");
$arr2 = array('a' => "9", 'b' => "8", 'c' => "7");

Как я могу создать массив "add-up", как показано ниже

$arr1 = array(
  array('a', "1", "9"),
  array('b', "2", "8"),
  array('c', "3", "7")
);

Я не уверен, что приведенный выше синтаксис правильный. Если это не так, то дополнение, которое выглядит ниже, тоже подойдет

$arr1 = array(
  'a' => array("1", "9"),
  'b' => array("2", "8"),
  'c' => array("3", "7")
);

Спасибо

Ответы [ 2 ]

3 голосов
/ 28 октября 2009
foreach($arr1 as $k=>$v) {
    $new[$k] = array($v, $arr2[$k]);
}

Это то, что я думаю, ты хочешь. Но если я ошибаюсь, то вы можете сделать:

foreach($arr1 as $k=>$v) {
    $new[] = array($k, $v, $arr2[$k]);
}
0 голосов
/ 28 октября 2009
$arr1 = array('a' => "1", 'b' => "2", 'c' => "3");
$arr2 = array('a' => "9", 'b' => "8", 'c' => "7");

$summ=array();
foreach(array($arr1,$arr2) as $arr){
    $keys=array_keys($arr);
    foreach($keys as $key){
        if(isset($summ[$key]))
            $summ[$key][]=$arr[$key];
        else $summ[$key]=array($arr[$key];
    }
}
/*
This will have made:
$sum = array(  
    'a' => array("1", "9"),  
    'b' => array("2", "8"),  
    'c' => array("3", "7")
);

I leave it up to you to now reduce this one more step to match your desired output.
*/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...