在关联数组中查找最大值

时间:2012-01-26 13:44:01

标签: php

我有一个关联数组:

$users[0] = array('name' => 'Jim', 'depth' => '1', 'bk_id' => '9'); 
$users[1] = array('name' => 'Jill', 'depth' => '3', 'bk_id' => '10'); 
$users[2] = array('name' => 'Jack', 'depth' => '7', 'bk_id' => '17'); 

我想知道一种找到具有最大或最大深度值的数组索引的方法吗?

任何建议都表示赞赏。

5 个答案:

答案 0 :(得分:3)

只需迭代并查看最大值:

var max = 0, maxIndex = -1;
for(var i=0;i<users.length;i++) {
   if(parseInt(users[i].depth,10) > max) {
      max = users[i].depth;
      maxIndex = i;
   }
}
console.log("Your maximum depth is %d at index %d", max, maxIndex);

答案 1 :(得分:1)

由于问题不明确,以下是如何使用PHP找到它。

foreach ($users as $index => $user) {
  if (!isset($maxdepth)) {
    $maxdepth = $user['depth'];
    $maxindex = $index;
  }
  else {
    if ($user['depth']) > $maxdepth) {
       $maxindex = $index;
       $maxdepth = $user['depth'];
    }
}
echo "Index: $maxindex";

答案 2 :(得分:1)

来自PHP:

$index = 0;
$max = 0;

for ($i = 0; $i < count($users); $i++) {
    if ($users[$i]['depth'] > $max) {
        $max = $users[$i]['depth'];
        $index = $i;
    }
}

echo $users[$index]['name'] . ' has the greatest depth.';

答案 3 :(得分:0)

您可以迭代查看每次查看深度值的所有键值对,或者使用自定义排序函数对$users数组进行排序,例如sort_func(){ return a.depth - b.depth}

答案 4 :(得分:0)

使用原生排序功能?

function getDeepestItem(arr)
{
    arr.sort(function(a,b){return a['depth'] < b['depth'];});
    return arr[0]
}