1つの配列を入力として受け取り、そこから値をフィルター処理して、別の配列として出力したいと思います。関数は、最大x
回の反復をループする必要があります。
たとえば、入力からallの値を出力する場合は、次を使用します。
<?php
$i=0;
foreach ($array as $data) {
if ($data['type'] != 'some_value') {
$formatted_array[$i] = $data;
$i++;
}
}
return $formatted_array;
しかし、$array
には大きなインデックスがありました。$formatted_array
私が必要とするよりも大きいでしょう。複数の条件でfor
ループを使用しようとしましたが、無限ループでスタックしているようです。
私は貿易による開発者ではないので、論理を理解するのは難しいです。エラーが発生していないので、どこが間違っているのか正確に理解するのは難しいです。
配列の終わりまで、または関数が特定の反復回数に達するまで、PHPループを実行するにはどうすればよいですか?
あなたは正しい方向に進んでいます-カウントに達したらforeach
ループを終了できます。 foreach
を使用して配列全体を反復処理し、指定された最大数に達しない場合は、配列全体を処理します。ただし、最大値に達した場合は、ループから飛び出してください。
$i = 0;
// Don't allow more than 5 if the array is bigger than 5
$maxiterations = 5;
foreach ($array as $data) {
if ($i < $maxiterations) {
if ($data['type'] != 'some_value') {
$formatted_array[$i] = $data;
$i++;
}
}
else { // Jump out of the loop if we hit the maximum
break;
}
}
return $formatted_array;
while
ループを使用します。
$i = 0;
$limit = 10;
$count = count($array);
while ($i < $limit && $i < $count) {
$data = $array[$i];
// your code here
++$i;
}
$max_iterations = 100;
for ($i=1;$i <=$max_iterations;$i++)
{
if ($i <= count($array))
//do what u need
else
break;
}
<?php foreach($usersinglevideodata1 as $userkey=>$uservalue){
for($i = 0; $i < 5; $i++){if($uservalue['com_video'.$i.''] !=""){ if ($Count < 3){?>
<div class="col-sm-4">
<iframe width="100%" height="120" src="https://www.youtube.com/embed/<?php echo youtube_id($uservalue['com_video'.$i.'']);?>" frameborder="0" allowfullscreen></iframe>
</div>
<?php $Count++;}else{break;}}}?>
<?php }}?>
注:あなたは正しい方向に進んでいます-カウントに達したらforeachループを終了できます。 foreachを使用して配列全体を反復処理し、指定された最大数に到達しない場合は、配列全体を処理します。ただし、最大値に達した場合は、ループから飛び出してください。
<?php
$counter = 0;
$new_array = array();
while(count($new_array) <= $max_elements) {
if($array[$counter]['type'] !== 'some_value') {
$new_array[] = $array[$counter];
}
}
return $new_array;
?>
break
ステートメントに精通していますか?
ユーザーはforeachループを実行し、条件内のコードを入力するたびにカウンター変数を維持します。必要な数の要素に達した場合、つまりカウンターが特定の値に達した場合は、ループから抜け出します。
<?php
$i=0;
foreach ($array as $data) {
if ($data['type'] != 'some_value') {
$formatted_array[$i] = $data;
$i++;
if($i>$maxAllowedElements) // here $i can serve as the counter and you can define //$maxAllowedElements to whatever value you like.
break;
}
}
return $formatted_array;