PHPに複数の「インデックス」変数があり、次のような正しい構文を使用していない)でforeach
ループを使用することは可能ですか?
foreach ($courses as $course, $sections as $section)
そうでない場合、同じ結果を達成する良い方法はありますか?
あなたができるまさにその結果を達成するために
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];
}
次のようなネストされたループを使用する必要があります。
foreach($courses as $course)
{
foreach($sections as $section)
{
}
}
もちろん、これはすべてのコースのすべてのセクションをループします。
各ペアを確認したい場合は、コース/セクションのペアを含むオブジェクトを使用してそれらをループするか、インデックスが同じであることを確認して実行することをお勧めします。
foreach($courses as $key => $course)
{
$section = $sections[$key];
}
トライ-
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/>";
}
?>
いいえ、これらの配列には他の数のアイテムがあるためです。
次のように明示的に記述する必要があります。
for ($i = 0; $i < count($courses) && $i < count($sections); ++$i) {
$course = $courses[$i];
$section = $sections[$i];
//here the code you wanted before
}
いいえ、これはおそらくPHPの配列カーソルが有用なまれなケースの1つです。
reset($sections);
foreach ($courses as $course)
{
list($section) = each($sections);
}
それは正確に何をしますか? $courses
と$sections
は2つの別々の配列であり、それぞれの値に対して同じ機能を実行したいですか?いつでもできます:
foreach(array_merge($courses, $sections) as $thing) { ... }
もちろん、これはarray_merge
に関する通常の仮定をすべて行います。
または、$sections
が$course
から来て、各コースの各セクションで何かをしたいのですか?
foreach($courses as $course) {
foreach($sections as $section) {
// Here ya go
}
}
このような?
foreach($array as $b=>$c){
}