从PHP数组中删除存在的值


Remove Values from PHP Array if Present

我有以下PHP数组:

Array
(
    [0] => 750
    [1] => 563
    [2] => 605
    [3] => 598
    [4] => 593
)

我需要使用PHP对数组执行以下操作:

  1. 在数组中搜索一个值(该值将在变量;我们称它为$number。如果值

如果有人能告诉我怎么做,我将不胜感激。

注意:如果它使它更容易,我可以形成数组,使键与值相同。

$array = array_unique($array) // removes dupicate values

while(false !== ($num = array_search($num, $array))){
    unset($array[$num]);
}
$max = max($array);

将搜索所有值为$num的键并取消设置

假设你的$array

$array = array_unique($array) // removes dupicate values
$array = arsort($array) 
$variable = $array[0]  //  the maximum value in the array, and place it in a variable.  
$key = array_search($array, $number);
if($key){
    unset($array[$key])  // Search array for a value, value is present in array, remove it.
}

array_search()unset()似乎是您的问题中的样本数据的好方法。为了便于比较,我将展示一种不同的方法(或者如果你的用例与你在这里发布的略有不同)。

方法:(演示)

$array=[750,563,605,598,593];
// if removing just one number apply the number as an array element
$number=605;
var_export(array_diff($array,[$number]));
// if you are performing this task with more than one $number, make $numbers=array() and do the same...
$numbers=[605,563];  // order doesn't matter
var_export(array_diff($array,$numbers));
// if you need to re-index the output array, use array_values()...
$numbers=[605,563];  // order doesn't matter
var_export(array_values(array_diff($array,$numbers)));
输出:

array (
  0 => 750,
  1 => 563,
  3 => 598,
  4 => 593,
)
array (
  0 => 750,
  3 => 598,
  4 => 593,
)
array (
  0 => 750,
  1 => 598,
  2 => 593,
)