Php 如何返回数组中的最小密钥?

Php 如何返回数组中的最小密钥?,php,arrays,sorting,Php,Arrays,Sorting,数组中的键是否有等效的min() 给定阵列: $arr = array(300 => 'foo', 200 => 'bar'); 如何返回最小密钥(200) 这里有一种方法,但我必须想象有一种更简单的方法 function minKey($arr) { $minKey = key($arr); foreach ($arr as $k => $v) { if ($k < $minKey) $minKey = $k; } re

数组中的键是否有等效的
min()

给定阵列:

$arr = array(300 => 'foo', 200 => 'bar');
如何返回最小密钥(
200

这里有一种方法,但我必须想象有一种更简单的方法

function minKey($arr) {
    $minKey = key($arr);
    foreach ($arr as $k => $v) {
        if ($k < $minKey) $minKey = $k;
    }
    return $minKey;
}
$arr = array(300 => 'foo', 200 => 'bar');
echo minKey($arr); // 200
函数minKey($arr){
$minKey=key($arr);
foreach($arr为$k=>$v){
如果($k<$minKey)$minKey=$k;
}
返回$minKey;
}
$arr=array(300=>'foo',200=>'bar');
echo minKey($arr);//200
试试这个:

echo min(array_keys($arr));
试一试

echo min(array_keys($arr));
min()
是一个php函数,它将返回集合中的最低值
array_keys()
是一个返回数组中所有键的函数。把它们结合起来,得到你想要的

如果您想了解这两个函数的更多信息,请查看并使用
array\u search()
php函数

array_search(min($arr), $arr);
当您
echo
时,上面的代码将打印
200

用于在代码下方回显最低键使用值

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

这对其他人也有帮助

<?php
//$arr = array(300 => 'foo', 200 => 'bar');
$arr = array("0"=>array('price'=>100),"1"=>array('price'=>50));

//here price = column name
echo minOfKey($arr, 'price');


function minOfKey($array, $key) {
    if (!is_array($array) || count($array) == 0) return false;
    $min = $array[0][$key];
    foreach($array as $a) {
        if($a[$key] < $min) {
            $min = $a[$key];
        }
    }
    return $min;
}

?>


doh!谢谢那就好了,那些反对票怎么了?这不是复制品。答案当然很简单。我承认我早该知道,但这对我来说仍然是一个公平的问题。@Ryan你得到了我的一票:)在问题中加入了我脑海中的第一个策略,以帮助脱离话题。现在我知道了
array\u keys()
,这似乎很愚蠢,但这正是我最初问这个问题时的想法。非常感谢帮助(@Leri)重新开始这个问题。不知道谁投了反对票,原因是什么,但是。。。好的,世界很奇怪:)像往常一样,你们甚至留下了一条评论。@silkfire点击F9或按Run按钮。@DipeshParmar它不适用于这个数组:
$arr=array(100=>'ganesh',300=>'foo',200=>'bar')返回200,但应为100。这是一个O(n)解
<?php
//$arr = array(300 => 'foo', 200 => 'bar');
$arr = array("0"=>array('price'=>100),"1"=>array('price'=>50));

//here price = column name
echo minOfKey($arr, 'price');


function minOfKey($array, $key) {
    if (!is_array($array) || count($array) == 0) return false;
    $min = $array[0][$key];
    foreach($array as $a) {
        if($a[$key] < $min) {
            $min = $a[$key];
        }
    }
    return $min;
}

?>