比較演算子を適用して配列をループしたい。
したがって、このコードは次のとおりです。
$arr = array(1,2,3,4,5,6,7,8,9);
foreach($arr as $key)
{
echo $key;
}
「123456789」となりecho
ます。5 より大きい、または 5 より小さい数値のみをリストできるコードが必要です (したがって、6789 または 1234 が出力されます)。
注:これを行う方法があり、比較的簡単であるとほぼ確信していますが、それを行う方法を見つけることができず、stackoverflowでこれを尋ねることに疑問の余地はないようです. 私は見ましたが、私のタイトルが示すように、グーグルのためにこれを簡潔に述べる方法がわかりません. ありがとうございました。
注: 外部条件チェックの使用を検討していましたが、これ専用の php 関数があれば、より効率的であると推測しました。
更新: array_filter が提案されたので、次のベンチマークを実行して、ここで従来のアプローチと組み込みのアプローチのどちらが優れているかをテストしました。
$arr=array();
for($x=1;$x<10001;$x++){
$arr[]=$x;
}
$a1 = microtime();
foreach($arr as $key) {
if ($key > 5000) {
echo $key;
}
}
$a2 = microtime();
$a3 = microtime();
$greater = array_filter($arr, function ($key) {
return $key > 5000;
});
foreach($greater as $key) {
echo $key;
}
$a4 = microtime();
$firsttest=$a2-$a1;
$secondtest=$a4-$a3;
echo '<br>'.$firsttest.'<br>'.$secondtest;
つまり、foreach を使用してから if 条件を使用する方が、array_filter を使用してから foreach ループを使用するよりもはるかに効率的です。