0

I'm trying to return the LARGEST numerical value associated with the 'reduced' array below. Easy enough if there is one value but many have two- as below. I'm using

$reduced_array = $data['rates'][1]['rates'][0];

but this only works in returning the first value. I need to return just the highest value however- so below it would be 8. would something like

 if(count($data['rates'][1]['rates']) > 2) {
        ***return largest value here***

work? I'm just not sure how to perform the asterisked task- maybe a for loop? here is the array.

Array
(
[rates] => Array
    (
        [0] => Array
            (
                [name] => Super Reduced
                [rates] => Array
                    (
                    )

            )

        [1] => Array
            (
                [name] => Reduced
                [rates] => Array
                    (
                        [0] => 5
                        [1] => 8
                    )

            )

        [2] => Array
            (
                [name] => Standard
                [rates] => Array
                    (
                        [0] => 23
                    )

            )

        [3] => Array
            (
                [name] => Increased
                [rates] => Array
                    (
                    )

            )

        [4] => Array
            (
                [name] => Parking
                [rates] => Array
                    (
                    )

            )

    )

[disclaimer] => Rates data is based on information published by the European Commission, updated 1st January 2017.
)

Thanks for any help

1
  • Just grab the rates array, sort it in descending order, then grab the first value. Commented May 23, 2017 at 6:49

2 Answers 2

1

You can use max() for that.

$array = array(
    "rates" => array(
        array(
            "name" => "Super Reduced",
            "rates" => array()
        ),
        array(
            "name" => "Reduced",
            "rates" => array(
                5,
                8
            )
        )
    )
);

echo max($array["rates"][1]["rates"]); // 8
Sign up to request clarification or add additional context in comments.

1 Comment

ah thanks, should have checked the php manual sorry, haven't programmed in quite a while.
0

Easiest solution will be using of max on inner array example:

if(!empty($data['rates'][1]['rates'])) {
    $maxvalue = max($data['rates'][1]['rates']);
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.