I have the following array, and each element of the array has a priority element. Based on the maximum priority value how can we generate the new array?
JavaScript
x
Array
(
[0] => stdClass Object
(
[id] => 1
[name] => Main Category 1
[updated] => 2020-01-14 14:13:30
[priority] => 1
)
[1] => stdClass Object
(
[id] => 2
[name] => Main Category 2
[updated] => 2020-01-14 17:19:35
[priority] => 2
)
[2] => stdClass Object
(
[id] => 3
[name] => Category 3
[updated] => 2020-01-14 17:42:23
[priority] => 3
)
)
Thus the highest priority value here 3. So, the result array will be like the following. Can you help me please. Thank you in advance.
JavaScript
Array
(
[0] => stdClass Object
(
[id] => 3
[name] => Category 3
[updated] => 2020-01-14 17:42:23
[priority] => 3
)
)
Advertisement
Answer
You could use usort
to sort your array by priority
descending, and then make an array of the [0]
element:
JavaScript
usort($array, function ($a, $b) { return $b->priority - $a->priority; });
print_r(array($array[0]));
Output:
JavaScript
Array
(
[0] => stdClass Object
(
[id] => 3
[name] => Category3
[updated] => 2020-01-1417:42:23
[priority] => 3
)
)