首页 > 解决方案 > 根据php中提到的数组从多维数组中获取最大值

问题描述

我面临一个从数组中获得最高价值的问题。我有两个数组。第一个数组如下:

$catids = [239,240,238]

第二个数组是下面的多维数组:

  $categories = Array
  (
[0] => Array
    (
        [category_id] => 239
        [final_price] => 1999

    )

[1] => Array
    (
        [category_id] => 238
        [final_price] => 2990
    )

[2] => Array
    (
        [category_id] => 240
        [final_price] => 3500
    )
[3] => Array
    (
        [category_id] => 241
        [final_price] => 500
    )

)

预计出局

Array
(
[category_id] => 240
[final_price] => 3500
)

在我的输入数组中,catid 240 的最大值为 3500。

我试过的

I have sorted the array by final_price in ascending order
usort($categories, function($a, $b) {
        return $a['final_price'] <=> $b['final_price'];
    });

标签: phparrays

解决方案


在 PHP 中执行此操作非常简单,您只需遍历类别并首先检查 category_id 是否在您感兴趣的类别 id 数组中,然后将 final_price 与当前最大值进行比较...

$max = ["final_price" => PHP_INT_MIN];
foreach ( $categories as $category )    {
    if ( in_array($category["category_id"], $catids)
            && $category["final_price"] > $max["final_price"] ) {
        $max = $category;
    }
}
print_r($max);

这与测试数据给出了......

Array
(
    [category_id] => 240
    [final_price] => 3500
)

推荐阅读