使用php中的unset从数组中删除最小值



unset(min($arr))在php 中不工作

min($arr) do给出最小值,unset($arr[1])也适用于

知道吗?

试试这个:

unset($arr[array_search(min($arr), $arr)]);

只需使用

array_sort($arr);
array_shift($arr);

这样就把它排序成最低的,然后从顶部弹出。

或者,您可以unset($arr[array_search(min($arr), $arr)]);,但这似乎效率很低。

您可以在数组键列表上使用array_reduce。这样,您就可以获得最小条目的索引,这样您就可以直接取消设置它。

$data = array(8, 5, 7, 1, 4, 2);
print_r($data);
function mindex($min, $curr) {
  global $data;
  if (is_null($min) || $data[$curr] < $data[$min])
    return $curr;
  else
    return $min;
}
$min_index = array_reduce(array_keys($data), mindex);
unset($data[$min_index]);
print_r($data);

输出

Array
(
    [0] => 8
    [1] => 5
    [2] => 7
    [3] => 1
    [4] => 4
    [5] => 2
)
Array
(
    [0] => 8
    [1] => 5
    [2] => 7
    [4] => 4
    [5] => 2
)

最新更新