Select 个基于条件的数组值
Select values from an array based on a condition
假设我们有以下数组:
$ar = [2, 5, 3, 1];
对于 select 每个 < 4 的值,我们可以执行以下操作:
$newAr = [];
foreach($ar as $val){
if($val < 4){
$newAr[] = $val;
}
}
是否有更优雅的方法来执行此操作,也许使用接受数组和谓词函数的单个函数?
array_filter() 完成任务。
$array1 = array(1, 2, 3, 5);
function lessThanFour($var) {
return $var < 4 ? $var : FALSE;
}
echo '<pre>';
print_r(array_filter($array1, "lessThanFour"));
echo '</pre>';
输出:
Array
(
[0] => 1
[1] => 2
[2] => 3
)
假设我们有以下数组:
$ar = [2, 5, 3, 1];
对于 select 每个 < 4 的值,我们可以执行以下操作:
$newAr = [];
foreach($ar as $val){
if($val < 4){
$newAr[] = $val;
}
}
是否有更优雅的方法来执行此操作,也许使用接受数组和谓词函数的单个函数?
array_filter() 完成任务。
$array1 = array(1, 2, 3, 5);
function lessThanFour($var) {
return $var < 4 ? $var : FALSE;
}
echo '<pre>';
print_r(array_filter($array1, "lessThanFour"));
echo '</pre>';
输出:
Array
(
[0] => 1
[1] => 2
[2] => 3
)