从数组中删除符合 PHP 条件的某些元素?
Remove certain elements from an array that fit a condition in PHP?
所以我有一个数字数组:
$arr = [53, 182, 435, 591, 637];
我想做的就是遍历每个元素,当某个条件为真时,它应该 return 一个新数组,其中删除了符合条件的元素。
foreach($arr as $arry){
echo "\n";
echo $arry;
if($arry % 13 == 0){
//Remove 182 and 637 because they are divisible by 13,and make a new array: [53, 435, 591]
}
}
这是否回答了您的问题?
$arr = [53, 182, 435, 591, 637];
for($i = 0; $i < count($arr); $i++){
if($arr[$i] % 13 == 0){
unset($arr[$i]);
}
}
$arr = array_values($arr); //reset indexes
array_filter 非常适合这种情况。
$arr = [53, 182, 435, 591, 637];
$filtered_arr = array_filter($arr, fn($number) => $number % 13 !== 0);
print_r($filtered_arr); // [53, 435, 591]
请注意,短回调 fn 仅适用于 PHP7.4 或更高版本
所以我有一个数字数组:
$arr = [53, 182, 435, 591, 637];
我想做的就是遍历每个元素,当某个条件为真时,它应该 return 一个新数组,其中删除了符合条件的元素。
foreach($arr as $arry){
echo "\n";
echo $arry;
if($arry % 13 == 0){
//Remove 182 and 637 because they are divisible by 13,and make a new array: [53, 435, 591]
}
}
这是否回答了您的问题?
$arr = [53, 182, 435, 591, 637];
for($i = 0; $i < count($arr); $i++){
if($arr[$i] % 13 == 0){
unset($arr[$i]);
}
}
$arr = array_values($arr); //reset indexes
array_filter 非常适合这种情况。
$arr = [53, 182, 435, 591, 637];
$filtered_arr = array_filter($arr, fn($number) => $number % 13 !== 0);
print_r($filtered_arr); // [53, 435, 591]
请注意,短回调 fn 仅适用于 PHP7.4 或更高版本