我有一个关联数组:
$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');
我想知道一种找到具有最大或最大深度值的数组索引的方法吗?
任何建议都表示赞赏。
答案 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]
}