phparraysmaxusortasort

find id of post with highest value


I have an array of posts that I want to sort - but before I do, I want to find the id of the post with the highest number of likes.

I loop through the array using a foreach. Although it seems like a waste to do two foreach loops for this - I don't know if there's an alternative when trying to find the highest value beforehand?

Array
(
    [0] => Array
        (
            [id] => 162
            [like_count] => 2
            etc.
        )
    [1] => Array
        (
            [id] => 165
            [like_count] => 23
            etc.
        )

)

So the second post has the highest amount of likes, so I need the ID of 165 - then when I loop through I can do something like

foreach ($posts as $post){
    if($most_liked_id == $post["id"]){
       // this post is the most liked!
    }
}

Any help would be much appreciated - thanks!


Solution

  • $highest = 0;
    $highest_id = 0;
    
    foreach($array as $a) {
    
        if($a['like_count'] > $highest) {
    
            $highest = $a['like_count'];
            $highest_id = $a['id'];
        }
    }
    

    Hope I understood you correctly :)