Home > Software engineering >  Get the maximum value and the key of the corresponding array from an array of arrays in PHP
Get the maximum value and the key of the corresponding array from an array of arrays in PHP

Time:11-02

I am really sorry about this confusing question, but essentially I have a PHP array made up of multiple other arrays. Of these arrays, I'd like to extract the array with the maximum value in the cpmbid column of the relevant array.

Array ( [0] => Array ( [cid] => 1 [accountid] => anaccount [orderid] => two [campaigntype] => CPM [bid] => 1.40000 [creativename] => Creative 2 [imgsource] => https://i1.wp.com/test-bucket-dfn.s3.us-west-2.amazonaws.com/wp-content/uploads/2019/07/24122252/NATPE-300x250.jpg?ssl=1 [clickthrough] => https://google.com/search?q=ad3 [targethostname] => localhost [targetpath] => all [keyvalue1] => my [keyvalue2] => any [keyvalue3] => any [width] => 300 [height] => 250 [dayrem] => 4 [clickrem] => 0 [imprem] => 1019 ) [1] => Array ( [cid] => 2 [accountid] => anaccount [orderid] => one [campaigntype] => CPM [bid] => 1.60000 [creativename] => Creative 2 [imgsource] => https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSm2kj7NQ0uuIxYqSA4-3dd1-I_x2xcpq2LmMfAcUOTG2AVv2n6bCkONgr1uVNJJO8EFIg&usqp=CAU [clickthrough] => https://google.com/search?q=ad2 [targethostname] => localhost [targetpath] => /home/no [keyvalue1] => hello [keyvalue2] => my [keyvalue3] => friend [width] => 300 [height] => 250 [dayrem] => 2 [clickrem] => 0 [imprem] => 753 ) [2] => Array ( [cid] => 3 [accountid] => anaccount [orderid] => three [campaigntype] => CPM [bid] => 2.30000 [creativename] => Creative 3 [imgsource] => https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRmZIh09uRp3ADOszQz6APBuCOmd6H_cQ-Dew&usqp=CAU [clickthrough] => https://google.com/search?q=ad4 [targethostname] => localhost [targetpath] => /fruitsalad/page.html [keyvalue1] => any [keyvalue2] => any [keyvalue3] => any [width] => 300 [height] => 250 [dayrem] => 2 [clickrem] => 0 [imprem] => 1000 ) [3] => Array ( [cid] => 4 [accountid] => anaccount [orderid] => two [campaigntype] => CPM [bid] => 1.90000 [creativename] => Creative 4 [imgsource] => https://i1.wp.com/test-bucket-dfn.s3.us-west-2.amazonaws.com/wp-content/uploads/2019/07/24122252/NATPE-300x250.jpg?ssl=1 [clickthrough] => https://google.com/search?q=ad5 [targethostname] => localhost [targetpath] => all [keyvalue1] => any [keyvalue2] => any [keyvalue3] => any [width] => 300 [height] => 250 [dayrem] => 4 [clickrem] => 0 [imprem] => 4013 ) )
//This is the Array, I want to select the array in which the highest 'bid' value is, any answers?

I am sorry if this is a duplicate question, and I appreciate any answers. Thanks!

CodePudding user response:

You can use array_column to get an array of values for specific key, and max it.

max(array_column($array, 'bid'))

CodePudding user response:

Check with following code, it will find max value then max array based on value:

$maxval=max(array_column($array,"bid")); 
$maxarray=array_keys(array_column($array,"bid"),$maxval);
print_R($array[$maxarray[0]]); 

$array = your array,

  • Related