[英]PHP array_merge order one value per array
I'd like two merge two array with a custom order: take one value from array one and then one from array two as following: 我想要两个以自定义顺序合并两个数组:从数组1获取一个值,然后从数组2获取一个值,如下所示:
$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')
)
Values are different, keys same on both arrays. 值不同,两个数组上的键相同。
内置功能
$result = array_merge_recursive($array1, $array2);
$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];
}
Try this : 尝试这个 :
$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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.