Я получаю значения из таблицы в форме. У меня есть 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
петля или с модулем?
Вы должны сделать цикл в вашем массиве и использовать 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);
использовать array_map и array_chunk
array_map(function($v){return array_chunk($v, 2);), $array);
С 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
)
)
)