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:如何在对数组重新排序时对1个数组中的3个数组进行排序_Php_Arrays - Fatal编程技术网

PHP:如何在对数组重新排序时对1个数组中的3个数组进行排序

PHP:如何在对数组重新排序时对1个数组中的3个数组进行排序,php,arrays,Php,Arrays,我需要将3个数组合并为1个,同时以第二个数组的第一个条目跟随第一个数组的第一个条目的方式对新数组进行排序 例如: $array1 = array(dog, cat, mouse); $array2 = array(table, chair, couch); $array3 = array(car, bike, bus); 这些数组应生成以下数组: $resultarray = array(dog, table, car, cat, chair, bike, mouse, couch, bus)

我需要将3个数组合并为1个,同时以第二个数组的第一个条目跟随第一个数组的第一个条目的方式对新数组进行排序

例如:

$array1 = array(dog, cat, mouse);
$array2 = array(table, chair, couch);
$array3 = array(car, bike, bus);
这些数组应生成以下数组:

$resultarray = array(dog, table, car, cat, chair, bike, mouse, couch, bus);
非常感谢您的回复

您只需要:

$resultarray = array();
foreach(array_map(null, $array1, $array2, $array3) as $set) {
    $resultarray = array_merge($resultarray, $set);
}
print_r($resultarray);

或简单的单线解决方案-

试试这个:

$array1 = array('dog', 'cat', 'mouse');
$array2 = array('table', 'chair', 'couch');
$array3 = array('car', 'bike', 'bus');

$result = call_user_func_array('array_merge', call_user_func_array('array_map', array(null,$array1,$array2,$array3)));

echo "<pre>";
print_r($result);
内部
call\u user\u func\u数组
已删除

输出:

$result = array_reduce(array_map(null, $array1, $array2, $array3), 'array_merge', array());
只是另一个单线解决方案:


调用用户函数数组('array\u merge',数组映射(null,$array1,$array2,$array3))
:-3非常优雅!如果没有你的回答,一个双循环就可以了。比我要提交的要好得多。谢谢你的快速回复。当我使用多维数组时,我是否也可以使用您的解决方案:$array=array(array(狗、猫、鼠标)、array(桌子、椅子、沙发)、array(car、bike、bus));不同的大小写取决于您想要的输出和现有的多维数组结构。内部
调用\u user\u func\u array
是多余的。@deceze:这只是为了转置数组??可以很容易地写成
array\u map(null,$array1,$array2,$array3)
以获得相同的效果。@deceze:ohhh..yeahh..感谢您提供的信息,我也将在anwser:)中添加它
$array1 = array('dog', 'cat', 'mouse');
$array2 = array('table', 'chair', 'couch');
$array3 = array('car', 'bike', 'bus');

$result = call_user_func_array('array_merge', call_user_func_array('array_map', array(null,$array1,$array2,$array3)));

echo "<pre>";
print_r($result);
$result = call_user_func_array('array_merge', array_map(null,$array1,$array2,$array3));
Array
(
    [0] => dog
    [1] => table
    [2] => car
    [3] => cat
    [4] => chair
    [5] => bike
    [6] => mouse
    [7] => couch
    [8] => bus
)
$result = array_reduce(array_map(null, $array1, $array2, $array3), 'array_merge', array());