Php массив массивов получить правильный результат

Я хочу перебрать весь массив массивов.
Что я имею:

$params =  [
'regs' => [156, 154, 138, 132, 142, 144],
'axis' => [0, 0, 0, 0, 0, 0],
'visible' => [1, 1, 0, 1, 0, 0],
'dependencies' => [1, 1, 1, 1, 1, 1],
];

Что я хочу получить:

foreach() {
foreach() {
render_element(reg = 156, axis = 0, visible = 1, dep = 1);
*render_element(reg = 154, axis = 0, visible = 1, dep = 1);
*render_element(reg = 138, axis = 0, visible = 0, dep = 1); etc
}
}

-2

Решение

Вы можете повторить в первом regs массив и использовать тот же ключ для печати значений из других массивов, так как ключи выглядят одинаково, как следует

foreach($params['regs'] as $key => $val) {
echo 'render_element(reg ='. $val.', axis ='. $params['axis'][$key].', visible ='. $params['visible'][$key].', dep ='.$params['dependencies'][$key].');' . "\n";
}

Это напечатает

render_element(reg =156, axis =0, visible =1, dep =1);
render_element(reg =154, axis =0, visible =1, dep =1);
render_element(reg =138, axis =0, visible =0, dep =1);
render_element(reg =132, axis =0, visible =1, dep =1);
render_element(reg =142, axis =0, visible =0, dep =1);
render_element(reg =144, axis =0, visible =0, dep =1);

живое демо

3

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

Если вы уверены, что все массивы в параметрах имеют одинаковую длину, вы можете использовать обычный цикл for:

for($i=0; $i<count($params["regs"]); ++$i)
{
render_element($params["regs"][i],
$params["axis"][i],
$params["visible"][i],
$params["dependencies"][i])
}
0

Хей МаоСтрейн

Проверьте синтаксис цикла foreach: http://php.net/manual/en/control-structures.foreach.php

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