我有以下PHP数组:
Array
(
[0] => 750
[1] => 563
[2] => 605
[3] => 598
[4] => 593
)
我需要使用PHP对数组执行以下操作:
$number
)。如果值
存在于数组中,将其删除。如果有人可以告诉我如何做到这一点,我们将非常感激。
注意:如果它更容易,我可以形成数组,使键与值相同。
答案 0 :(得分:2)
$array = array_unique($array) // removes dupicate values
while(false !== ($num = array_search($num, $array))){
unset($array[$num]);
}
$max = max($array);
将搜索值为$ num的所有键并将其取消设置
答案 1 :(得分:2)
说出你的$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.
}
答案 2 :(得分:0)
array_search()
和unset()
似乎是您问题中样本数据的好方法。为了比较,我将展示一种不同的方式(或者如果您的用例与您在此处发布的用例略有不同)。
方法:(Demo)
$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,
)