Подтвердить что ты не робот

Множественные индексные переменные в PHP foreach loop

Возможно ли иметь цикл foreach в PHP с несколькими "индексными" переменными, похожими на следующие (которые не используют правильный синтаксис)?

foreach ($courses as $course, $sections as $section)

Если нет, есть ли хороший способ добиться того же результата?

4b9b3361

Ответ 1

чтобы достичь именно того результата, который вы могли бы сделать

foreach (array_combine($courses, $sections) as $course => $section)

но это работает только для двух массивов

Ответ 2

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

for($i=0, $count = count($courses);$i<$count;$i++) {
 $course  = $courses[$i];
 $section = $sections[$i];
}

Ответ 3

Вам нужно будет использовать вложенные циклы, например:

foreach($courses as $course)
{
    foreach($sections as $section)
    {
    }
}

Конечно, это будет охватывать каждый раздел для каждого курса.

Если вы хотите посмотреть на каждую пару, вам лучше использовать объекты, которые содержат пары курса/раздела, и перебирать их, или убедиться, что индексы одинаковы и делают:

foreach($courses as $key => $course)
{
    $section = $sections[$key];
}

Ответ 4

TRY -

1)

<?php
$FirstArray = array('a', 'b', 'c', 'd');
$SecondArray = array('1', '2', '3', '4');

foreach($FirstArray as $index => $value) {
    echo $FirstArray[$index].$SecondArray[$index];
    echo "<br/>";
}
?>

или 2)

<?php
$FirstArray = array('a', 'b', 'c', 'd');
$SecondArray = array('1', '2', '3', '4');

for ($index = 0 ; $index < count($FirstArray); $index ++) {
  echo $FirstArray[$index] . $SecondArray[$index];
  echo "<br/>";
}
?>

Ответ 5

Нет, потому что у этих массивов может быть другое количество элементов.

Вы должны явно написать что-то вроде этого:

for ($i = 0; $i < count($courses) && $i < count($sections); ++$i) {
    $course = $courses[$i];
    $section = $sections[$i];

    //here the code you wanted before
}

Ответ 6

Нет, это, возможно, один из редких случаев. Курсоры PHP-массива полезны:

reset($sections);
foreach ($courses as $course)
{
 list($section) = each($sections);
}

Ответ 7

Что это было бы? Существуют ли $courses и $sections только два отдельных массива, и вы хотите выполнять одну и ту же функцию для значений в каждом? Вы всегда можете:

foreach(array_merge($courses, $sections) as $thing) { ... }

Это делает все обычные предположения о array_merge, конечно.

Или это, что $sections происходит от $course, и вы хотите что-то сделать для каждого раздела в каждом курсе?

foreach($courses as $course) {
    foreach($sections as $section) {
        // Here ya go
    }
}

Ответ 8

как это?

foreach($array as $b=>$c){

}