PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了PHP在多维数组中找到第二高的元素值大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何获得多维数组中第二高的元素值.
我使用此功能获得最高价值.但是我怎么能找到第二高的.

function get_max($array)
{
    $max = -999999999;
    $found_item = null;

    foreach ($array as $key => $value) {
        if ($value['transaction_no'] > $maX) {
           $max = $value['transaction_no'];
           $found_item = $value;
        }
    }

    return $found_item;
}

例如,如果我调用get_max($transactions),则会得到数组编号4,因为它具有最高的值:transaction_no中的值为5.但是我怎么能获得第二高的呢?例如,当我调用get_second_max($transactions)时,我应该得到数组编号3,因为它在transaction_no中具有4.

$transactions = Array
    (
        [0] => Array
            (
                [transaction_user_id] => 359691e27b23f8ef3f8e1c50315cd506
                [transaction_no] => 1
                [transaction_@R_573_10586@l_amount] => 589.00
                [transaction_date] => 1335932419
                [transaction_status] => cancelled
            )

        [1] => Array
            (
                [transaction_user_id] => 9def02e6337b888d6dbe5617a172c18d
                [transaction_no] => 2
                [transaction_@R_573_10586@l_amount] => 79.00
                [transaction_date] => 1336476696
                [transaction_status] => cancelled
            )

        [2] => Array
            (
                [transaction_user_id] => 9def02e6337b888d6dbe5617a172c18d
                [transaction_no] => 3
                [transaction_@R_573_10586@l_amount] => 299.00
                [transaction_date] => 1336476739
                [transaction_status] => cancelled
            )

        [3] => Array
            (
                [transaction_user_id] => 9def02e6337b888d6dbe5617a172c18d
                [transaction_no] => 4
                [transaction_@R_573_10586@l_amount] => 79.00
                [transaction_date] => 1336476927
                [transaction_status] => cancelled
            )

        [4] => Array
            (
                [transaction_user_id] => 8e9050a3646c98342b9ba079fba80982
                [transaction_no] => 5
                [transaction_@R_573_10586@l_amount] => 129.00
                [transaction_date] => 1336477032
                [transaction_status] => cancelled
            )

    )

解决方法:

<?PHP
function get_max($array) {

    $all = array();
    foreach($array as $key=>$value){
        $all[] = $value['transaction_no'];
    }

    rsort($all);
    return $all[1];
}

要返回数组,而不仅仅是返回值:

function get_max($array) {

    $all = array();
    foreach($array as $key=>$value){
        /* creaTing array where the key is transaction_no and
           the value is the array containing this transaction_no */
        $all[$value['transaction_no']] = $value;
    }

    /* Now sort the array by the key (transaction_no) */
    krsort($all);

    /* get the second array and return it (see the link below) */
    return array_slice($all, 1, 1)[0];
}

PHP: Get n-th item of an associative array

大佬总结

以上是大佬教程为你收集整理的PHP在多维数组中找到第二高的元素值全部内容,希望文章能够帮你解决PHP在多维数组中找到第二高的元素值所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: