note 118871 added to function.usort
| From: | Nsisodia91 at gmail dot com | Date: | Fri, 19 Feb 2016 12:12:59 +0000 |
| Subject: | note 118871 added to function.usort | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-204993@lists.php.net to get a copy of this message | ||
You can also sort multi-dimensional array for multiple values like as
<?php
$arr = [
[
"name"=> "Sally",
"nick_name"=> "sal",
"availability"=> "0",
"is_fav"=> "0"
],
[
"name"=> "David",
"nick_name"=> "dav07",
"availability"=> "0",
"is_fav"=> "1"
],
[
"name"=> "Zen",
"nick_name"=> "zen",
"availability"=> "1",
"is_fav"=> "0"
],
[
"name"=> "Jackson",
"nick_name"=> "jack",
"availability"=> "1",
"is_fav"=> "1"
],
[
"name"=> "Rohit",
"nick_name"=> "rod",
"availability"=> "0",
"is_fav"=> "0"
],
];
usort($arr,function($a,$b){
$c = $b['is_fav'] - $a['is_fav'];
$c .= $b['availability'] - $a['availability'];
$c .= strcmp($a['nick_name'],$b['nick_name']);
return $c;
});
print_r($arr);
?>
Output:
Array
(
[0] => Array
(
[name] => Jackson
[nick_name] => jack
[availability] => 1
[is_fav] => 1
)
[1] => Array
(
[name] => David
[nick_name] => dav07
[availability] => 0
[is_fav] => 1
)
[2] => Array
(
[name] => Zen
[nick_name] => zen
[availability] => 1
[is_fav] => 0
)
[3] => Array
(
[name] => Rohit
[nick_name] => rod
[availability] => 0
[is_fav] => 0
)
[4] => Array
(
[name] => Sally
[nick_name] => sal
[availability] => 0
[is_fav] => 0
)
)
----
Server IP: 72.52.91.14
Probable Submitter: 103.240.32.74
----
Manual Page -- http://php.net/manual/en/function.usort.php
Edit -- https://master.php.net/note/edit/118871
Del: integrated -- https://master.php.net/note/delete/118871/integrated
Del: useless -- https://master.php.net/note/delete/118871/useless
Del: bad code -- https://master.php.net/note/delete/118871/bad+code
Del: spam -- https://master.php.net/note/delete/118871/spam
Del: non-english -- https://master.php.net/note/delete/118871/non-english
Del: in docs -- https://master.php.net/note/delete/118871/in+docs
Del: other reasons-- https://master.php.net/note/delete/118871
Reject -- https://master.php.net/note/reject/118871
Search -- https://master.php.net/manage/user-notes.php