Php 关联数组的最高值

Php 关联数组的最高值,php,arrays,Php,Arrays,有什么简单的方法可以获得关联数组的最高数值吗 $array = array( 0 => array( 'key1' => '123', 'key2' => 'values we', 'key3' => 'do not', 'key4' => 'care about' ), 1 => array( 'key1' => '124', 'ke

有什么简单的方法可以获得关联数组的最高数值吗

$array = array(
    0 => array(
        'key1' => '123',
        'key2' => 'values we',
        'key3' => 'do not',
        'key4' => 'care about'
    ),
    1 => array(
        'key1' => '124',
        'key2' => 'values we',
        'key3' => 'do not',
        'key4' => 'care about'
    ),
    2 => array(
        'key1' => '125',
        'key2' => 'values we',
        'key3' => 'do not',
        'key4' => 'care about'
    )
);

AwesomeFunction($array, 'key1'); // returns 2 ($array key)

因为这个问题是用电话写的,所以请客气一点。谢谢。

如果您知道您的数据将始终采用这种格式,那么类似的方法应该可以奏效

function getMax( $array )
{
    $max = 0;
    foreach( $array as $k => $v )
    {
        $max = max( array( $max, $v['key1'] ) );
    }
    return $max;
}

@ithcy-它的扩展可用于任何大小的数组

function getMax($array) {
    if (is_array($array)) {
        $max = false;
        foreach($array as $val) {
            if (is_array($val)) $val = getMax($val);
            if (($max===false || $val>$max) && is_numeric($val)) $max = $val;
        }
    } else return is_numeric($array)?$array:false;
    return $max;
}
我想
(如果没有找到数值,则返回false)

PHP5.5引入了
array\u column()
,这使得操作更简单:

echo max(array_column($array, 'key1'));

此示例的灵感来源于ithcy示例,但您可以设置“查找”键。 此外,它还返回最小值和最大值

function getArrayLimits( $array, $key ) {
    $max = -PHP_INT_MAX;
    $min = PHP_INT_MAX;
    foreach( $array as $k => $v ) {
        $max = max( $max, $v[$key] );
        $min = min( $min, $v[$key] );
    }
    return Array('min'=>$min,'max'=>$max);
}

您必须稍微修改它以接受第二个变量并返回数组键而不是最大值。+1这应该可以正常工作。您甚至可以将
'key1'
作为参数传递,使其更具动态性。既然可以使用内置PHP函数,为什么还要使用循环呢?