Как объединить много массивов в PHP - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть массив, который показывает результат, подобный этому

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 (), но не показывают правильный результат.Спасибо

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Попробуйте этот код:

$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);
}
0 голосов
/ 22 февраля 2019

Вы можете использовать array_chunk для этого, если это всегда внутренние массивы длины == 4.

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

Вот ссылка php sandbox .

...