将 3d 数组展平为 2d 数组[重复]

问题描述 投票:0回答:2
Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [win_number] => 2389
                    [id] => 1
                    [user_id] => 2
                )

            [1] => Array
                (
                    [win_number] => 2993
                    [id] => 2
                    [user_id] => 2
                )

            [2] => Array
                (
                    [win_number] => 9931
                    [id] => 3
                    [user_id] => 2
                )


        )

    [1] => Array
        (
            [0] => Array
                (
                    [win_number] => 3748
                    [id] => 14
                    [user_id] => 7
                )

            [1] => Array
                (
                    [win_number] => 9393
                    [id] => 15
                    [user_id] => 7
                )

            [2] => Array
                (
                    [win_number] => 3782
                    [id] => 16
                    [user_id] => 7
                )              

        )

)

有谁知道如何将这个数组转换为一个数组吗?例如,它将变成 array([0] = Array(..),[1] = Array(..) ,[2] = Array(..),[3] == Array(..),[ 4] = 数组(..),[5] = 数组(..),[6]...)。请建议:((((。因此,第一个数组需要使用for循环,因为它将有很多基于用户添加的

php arrays
2个回答
1
投票

将子数组合并为一个数组

如果您只是寻找一种将子数组合并在一起的方法:

// this is just testdata
$array1 = array(11, 12, 13, 14);
$array2 = array(21, 22, 23, 24);
$array3 = array(31, 32, 33, 34);
$array4 = array(41, 42, 43, 44);

$parentArray = array($array1, $array2, $array3, $array4);

// the array where all subArrays will be placed in
$result = array_merge(...$parentArray);


print_r($result);

但请注意 array_merge 方法将覆盖具有相同键的值。因此,如果一个数组初始化为 array("fruit" => "apple") ,另一个数组初始化为 array("fruit" => "banana") ,后者将覆盖前者。

但是如果键是默认键或唯一键,则不会覆盖任何内容。

我希望这有帮助。


0
投票

如果您希望将所有子数组合并到一个数组中,只需使用

...
splat 运算符和
array_merge

$f = array_merge(...$a);

工作示例:- https://3v4l.org/co1pc

© www.soinside.com 2019 - 2024. All rights reserved.