在多维多维数组中获得最高价值

Joh*_*ill 5 php arrays loops for-loop multidimensional-array

我需要获得多维数组中的最大值或最大值.

这是我的数组$array:

[pay] => Array
(
    [0] => Array
        (
            [title] => Array
                (
                    [name] => 'hi'
                )
            [payment] => Array
                (
                    [amount] => 35
                    [currency] => USD
                )
        )

    [1] => Array
        (
            [title] => Array
                (
                    [name] => 'lol'
                )
            [payment] => Array
                (
                    [amount] => 50
                    [currency] => USD
                )
        )

    [2] => Array
        (
            [title] => Array
                (
                    [name] => 'ok'
                )
            [payment] => Array
                (
                    [amount] => 30
                    [currency] => USD
                )
        )
)
Run Code Online (Sandbox Code Playgroud)

我需要得到最大值amount为50.我怎么能这样做?

这是我尝试但它不起作用:

$max = -9999999; //will hold max val
$found_item = null; //will hold item with max val;

foreach($array as $k=>$v)
{
    if($v['Total']>$max)
    {
        $max = $v['Total'];
        $found_item = $v;
    }
}
Run Code Online (Sandbox Code Playgroud)

Sah*_*ati 1

尝试一下希望这会有所帮助。这里我们只是用简单的方法foreach来完成它。

解决方案一:

在这里尝试这个代码片段

$max=0;
foreach($yourArray["pay"] as $value)
{
    if($max<$value["payment"]["amount"])
    {
        $max=$value["payment"]["amount"];
    }
}
echo $max;
Run Code Online (Sandbox Code Playgroud)

解决方案2:

只是出于测试目的,我已将您转换arrayjson. 这里我们使用array_column两次来获取列

在这里尝试这个代码片段

$internals=array_column($yourArray["pay"],"payment");//retrieving payments
$amounts=array_column($internals, "amount");//retrieving amounts
arsort($amounts);
print_r(array_values($amounts)[0]);
Run Code Online (Sandbox Code Playgroud)