从数组中删除符合 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]

Demo

请注意,短回调 fn 仅适用于 PHP7.4 或更高版本