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)
尝试一下希望这会有所帮助。这里我们只是用简单的方法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:
只是出于测试目的,我已将您转换array为json. 这里我们使用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)