Как объединить несколько массивов в парах с PHP?

Я получаю значения из таблицы в форме. У меня есть 2 ряда и 2 столбца.
Каждый столбец имеет 2 значения.

Мне удается получить значения столбцов по строкам, у меня есть этот массив:

array (
// 1st row
0 => array (
0 => 30,
1 => 34,
2 => 50,
3 => 52
),
// 2nd row
1 => array (
0 => 34,
1 => 38,
2 => 52,
3 => 54
)
)

Ожидаемый результат:

array (
// 1st row
0 => array (
// 1st col
0 => array (
0 => 30,
1 => 34
),
// 2nd col
1 => array (
0 => 50,
1 => 52
)
),
// 2nd row
1 => array (
// 1st col
0 => array (
0 => 34,
1 => 38
),
// 2nd col
1 => array (
0 => 52,
1 => 54
)
)
)

Я хотел бы разбить каждый массив строк на 2 пары (= 2 столбца с 2 значениями для каждой).

Я не знаю, как это сделать, может быть, с for петля или с модулем?

0

Решение

Вы должны сделать цикл в вашем массиве и использовать array_chunk в каждой строке:

$array = array (
array (30,34,50,52),
array (34,38,52,54)
);

foreach ( $array as &$row ){
$row = array_chunk($row, 2);
}

var_dump($array);
0

Другие решения

использовать array_map и array_chunk

array_map(function($v){return array_chunk($v, 2);), $array);
1

С array_chunk:

$array = array (
// 1st row
0 => array (
0 => 30,
1 => 34,
2 => 50,
3 => 52
),
// 2nd row
1 => array (
0 => 34,
1 => 38,
2 => 52,
3 => 54
)
);

foreach ($array as &$a) {
$a = array_chunk($a, 2);
}

print_r($array);

Выходы:

Array
(
[0] => Array
(
[0] => Array
(
[0] => 30
[1] => 34
)

[1] => Array
(
[0] => 50
[1] => 52
)

)

[1] => Array
(
[0] => Array
(
[0] => 34
[1] => 38
)

[1] => Array
(
[0] => 52
[1] => 54
)

)

)
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector