13

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
4

5 回答 5

35

尝试这个:

echo min(array_keys($arr));
于 2013-09-11T07:48:39.313 回答
8

尝试

echo min(array_keys($arr));

min()是一个 php 函数,它将返回一组中的最小值。array_keys()是一个返回数组所有键的函数。将它们组合起来以获得您想要的东西。

如果您想了解更多关于这两个功能的信息,请查看min()php guidearray_keys()php guide

于 2013-09-11T07:48:47.893 回答
1

使用array_search()php函数。

array_search(min($arr), $arr);

上面的代码将200在您打印时打印echo

为了回显最低键的值,请使用以下代码,

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

现场演示

于 2013-09-11T07:49:56.987 回答
0

这对其他人也有帮助,

<?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;
}

?>
于 2016-12-28T12:09:03.283 回答
-1
$arr = array(
300 => 'foo', 200 => 'bar'
);
$arr2=array_search($arr , min($arr ));
echo $arr2;
于 2013-09-11T07:49:46.190 回答