I am having a php array as follows;
$array =Array(
[310] => Array
(
[vendorname] => Utsav the vendor
)
[309] => Array
(
[vendorname] => Ashish vendor
[suggest_order] => 1
)
[308] => Array
(
[vendorname] => praveen rathod vendor
)
[262] => Array
(
[vendorname] => Yash Vendor
[suggest_order] => 0
)
[264] => Array
(
[vendorname] => amol vendro
[suggest_order] => 2
));
And I want to sort it based on suggest_order key so lowest suggest_order key's value should come first and than higher value and in last their comes all remaining elements which don't even have suggest_order key like;
$array =Array(
[262] => Array
(
[vendorname] => Yash Vendor
[suggest_order] => 0
)
[309] => Array
(
[vendorname] => Ashish vendor
[suggest_order] => 1
)
[264] => Array
(
[vendorname] => amol vendro
[suggest_order] => 2
)
[310] => Array
(
[vendorname] => Utsav the vendor
)
[308] => Array
(
[vendorname] => praveen rathod vendor
));
I have tried PHP Sort Array By SubArray Value .
function cmp_by_optionNumber($a, $b) {
return $a["suggest_order"] - $b["suggest_order"];
}
print_r(usort($array, "cmp_by_optionNumber"));
And I have also tried 2nd option in above answer,
$new_array=usort($array, function ($a, $b) {
return $a['suggest_order'] - $b['suggest_order'];
});
print_r($new_array);
But I am getting "1" in response; Any help will be appreciated.