Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP数组\合并顺序每个数组一个值_Php_Arrays_Array Merge - Fatal编程技术网

PHP数组\合并顺序每个数组一个值

PHP数组\合并顺序每个数组一个值,php,arrays,array-merge,Php,Arrays,Array Merge,我想要两个按自定义顺序合并两个数组:从数组一中取一个值,然后从数组二中取一个值,如下所示: $array1 = array('key1' => 'value_1_1', 'key2' => 'value_1_2'); $array2 = array('key1' => 'value_2_1', 'key2' => 'value_2_2'); //merge array with custom order $array_result = array('key1' =&g

我想要两个按自定义顺序合并两个数组:从数组一中取一个值,然后从数组二中取一个值,如下所示:

$array1 = array('key1' => 'value_1_1', 'key2' => 'value_1_2');
$array2 = array('key1' => 'value_2_1', 'key2' => 'value_2_2');

//merge array with custom order

$array_result = array('key1' => array('value_1_1', 'value_2_1'),
                      'key2' => array('value_2_1', 'value_2_2')
                     )
值不同,两个数组上的键相同。

请尝试以下操作:

$result = array();
foreach(array_keys($array1 + $array2) as $key)
{
    if(array_key_exists($key, $array1) && array_key_exists($key, $array2))
        $result[$key] = array($array1[$key], $array2[$key]);
    else
        $result[$key] = array_key_exists($key, $array1) ? $array1[$key] : $array2[$key];
}
$array1 = array('key1' => 'value_1_1', 'key2' => 'value_1_2');
$array2 = array('key1' => 'value_2_1', 'key2' => 'value_2_2');
$result = array();

/* Create index for $result */
foreach($array1 as $data => $value) {
    $result[$data] = array();
}

/* Craete Value for $result from array 1*/
foreach($array1 as $data => $value) {
    array_push($result[$data], $value); 
}

/* Craete Value for $result from array 2*/
foreach($array2 as $data => $value) {
    array_push($result[$data], $value);
}
内置功能

$result = array_merge_recursive($array1, $array2);

您必须重命名键,因为您不能有重复的键值。解决方案可以是创建多维数组,但键必须是相同的。这应该是与否相同的问题,键实际上是字符串,而不是int。对于只存在于一个数组中的键,会发生什么情况?