如何在PHP中合并多个数组

问题描述 投票:0回答:2

我有阵列显示这样的结果

Array
(
    [0] => AED
)
Array
(
    [0] => 1
)
Array
(
    [0] => 4071.64
)
Array
(
    [0] => 3603.98
)
Array
(
    [0] => AUD
)
Array
(
    [0] => 1
)
Array
(
    [0] => 10151.11
)
Array
(
    [0] => 9964.65
)
Array
(
    [0] => CHF
)
Array
(
    [0] => 1
)
Array
(
    [0] => 14162.66
)
Array
(
    [0] => 13912.70
)
Array
(
    [0] => CNY
)
Array
(
    [0] => 1
)
Array
(
    [0] => 2177.73
)
Array
(
    [0] => 2024.07
)
Array
(
    [0] => EUR
)
Array
(
    [0] => 1
)
Array
(
    [0] => 16080.01
)
Array
(
    [0] => 15813.89
)
Array
(
    [0] => GBP
)
Array
(
    [0] => 1
)
Array
(
    [0] => 18476.74
)
Array
(
    [0] => 18180.11
)
Array
(
    [0] => HKD
)
Array
(
    [0] => 1
)
Array
(
    [0] => 1802.15
)
Array
(
    [0] => 1778.28
)
Array
(
    [0] => JPY
)
Array
(
    [0] => 1
)
Array
(
    [0] => 128.40
)
Array
(
    [0] => 125.26
)
Array
(
    [0] => NZD
)
Array
(
    [0] => 1
)
Array
(
    [0] => 9711.35
)
Array
(
    [0] => 9529.10
)
Array
(
    [0] => SAR
)
Array
(
    [0] => 1
)
Array
(
    [0] => 3765.13
)
Array
(
    [0] => 3727.50
)
Array
(
    [0] => SGD
)
Array
(
    [0] => 1
)
Array
(
    [0] => 10496.44
)
Array
(
    [0] => 10308.02
)
Array
(
    [0] => USD
)
Array
(
    [0] => 1
)
Array
(
    [0] => 14120.00
)
Array
(
    [0] => 13980.00
)

我想将该数组合并到一个数组中。我的问题是如何合并该数组输出必须像这样

array(
       [0]=>array(
                   [0]=>AED
                   [1]=>1
                   [2]=>4071.64
                   [3]=>3603.98
                 )
       [1]=>array(
                   [0]=>AUD
                   [1]=>1
                   [2]=>10151.11
                   [3]=>9964.65
                 )
       [3]=>array(
                   [0]=>CHF
                   [1]=>1
                   [2]=>14162.66
                   [3]=>13912.70
                 )
       //and so on
)

或者像这样的结果

Array
   (
    [0] => AED
    [1] => 1
    [2] => 4071.64
    [3] => 3603.98
    [4] => AUD
    [5] => 1
    [6] => 10151.11
    [7] => 9964.65
    [8] => CHF
    [9] => 1
    [10] => 14162.66
    [11] => 13912.70
    [12] => CNY
    [13] => 1
    [14] => 2177.73
    [15] => 2024.07
    [16] => EUR
    [17] => 1
    [18] => 16080.01
    [19] => 15813.89
    [20] => GBP
    [21] => 1
    [22] => 18476.74
    [23] => 18180.11
    [24] => HKD
    [25] => 1
    [26] => 1802.15
    [27] => 1778.28
    [28] => JPY
    [29] => 1
    [30] => 128.40
    [31] => 125.26
    [32] => NZD
    [33] => 1
    [34] => 9711.35
    [35] => 9529.10
    [36] => SAR
    [37] => 1
    [38] => 3765.13
    [39] => 3727.50
    [40] => SGD
    [41] => 1
    [42] => 10496.44
    [43] => 10308.02
    [44] => USD
    [45] => 1
    [46] => 14120.00
    [47] => 13980.00
)

请帮助我,兄弟姐妹们,我尝试过使用array_merge()和array_push()但没有显示正确的结果。谢谢

php arrays array-merge array-push
2个回答
1
投票

如果它总是长度== 4的内部数组,你可以使用array_chunk

$text = "AED 1 4071.64 3603.98 AUD 1 10151.11 9964.65";
$result= array_chunk( explode( ' ', $text ), 4 );
var_dump( $result );

这是一个php sandbox link


0
投票

试试这段代码:

$array_data = array(

    array(
        AED, 1, 4071.64, 3603.98
    ),


    array(
        AUD, 1, 10151.11, 9964.65
    ),

    array(
        CHF, 1, 14162.66, 13912.70
    ),
);

$a = [];

foreach($array_data as $data) {
    $a = array_merge($a, $data);
}
© www.soinside.com 2019 - 2024. All rights reserved.