【问题标题】:How to merge many array in PHP如何在 PHP 中合并多个数组
【发布时间】:2019-02-22 04:14:28
【问题描述】:

我有数组显示这样的结果

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() 但没有显示正确的结果。谢谢

【问题讨论】:

  • 所以,字母之间没有空格。你会怎么区分?
  • 如果您在 AED 1 之间有空间,那么为什么要爆炸给您两个不同的阵列?很奇怪吗?

标签: php arrays array-merge array-push


【解决方案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

【讨论】:

    【解决方案2】:

    试试这个代码:

    $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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-01
      • 1970-01-01
      • 2014-02-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多