在关联数组中找到最高值

时间:2013-03-07 19:57:03

标签: php

我有一个看起来像这样的数组:

array(10) {
  [0]=>
  array(4) {
    [0]=>
    array(5) {
    ...
    }
    [1]=>
    array(5) {
    ...
    }
    [2]=>
    array(5) {
    ...
    }
    ["opt"]=>
    float(0.5)
  }
  [1]=>
  array(4) {
    [0]=>
    array(5) {
    ...
    }
    [1]=>
    array(5) {
    ...
    }
    [2]=>
    array(5) {
    ...
    }
    ["opt"]=>
    float(1)
  }
  .....
}

我想找出第一层数组的Key,它在键'opt'处具有最高值。我希望你明白我的意思。 抱歉这句话,但有点难以解释! ;)

编辑: 我想到的是使用max()创建所有使用foreach的条目。我不确定这是否是最好的方式。

2 个答案:

答案 0 :(得分:3)

您可以使用max() function

如果您的数组具有恒定长度“n”

$maxValue=max($array[0]["opt"],$array[1]["opt"], ... $array[n]["opt"]);

否则

$i=0;
foreach($array as $value)  {
   $opts[$i]=$value["opt"];
   $i++;
}
$maxValue=max($opts);

答案 1 :(得分:0)

max() + array_map()怎么样?

$max = max(
    array_map(function (array $layer) {
        return (float)$layer['opt'];
    }, $layers)
)