如何动态地将多维数组拆分为多个数组

3
我有一个多维数组,我希望将它分解成一个变量中的多个数组。
Array
(
    [name] => Array
        (
            [0] => John Davis
            [1] => Marie J
        )

    [work] => Array
        (
            [0] => employee
            [1] => none
        )

    [address] => Array
        (
            [0] => street 1
            [1] => street 2
        )

)

我希望得到输出结果:
$array1 = array("name" => "John Davis", "work" => "employee", "address" => "street 1");
$array2 = array("name" => "Marie J", "work" => "none", "address" => "street 2");

并且如何动态生成如果键值大于2的情况
非常感谢

请查看以下内容:https://stackoverflow.com/questions/46469966/php-split-multidimensional-array-by-key-value - Sofyan Thayf
类似链接 https://dev59.com/Gmw15IYBdhLWcg3wLIo2 - Vishnu Bhadoriya
1
可能是PHP - Split Multidimensional Array by key/value的重复问题。 - Adeel
请确保数组键的确切名称为"name"、"work"和"address",而不是数字0、1、2、3。 - haidarvm
2个回答

3
请尝试以下代码以获取输出结果:
$newArray = [];
foreach ($outerArray as $outerkey => $outerArr) {
    foreach ($outerArr as $key => $innerArr) {
        $newArray[$key][$outerkey] = $innerArr;
    }
}

print_r($newArray);

1
功能性解决方案
// make array of keys
$keys = array_keys($arr);
// combine it with data sets 
$res = array_map(function (...$x) use($keys) 
       { return array_combine($keys, $x); },
       ...array_values($arr));

演示


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接