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

时间:2012-03-19 17:56:46

标签: php

unset(min($arr))无法在php中运行

min($arr) do给出最小值并且未设置($ arr [1])也有效

任何想法?

3 个答案:

答案 0 :(得分:0)

只需使用

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

对它进行排序,使得最低值首先出现,然后将其从顶部弹出。

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

答案 1 :(得分:0)

试试这个:

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

答案 2 :(得分:0)

您可以在数组列表中使用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
)