note 124046 added to array.sorting
| From: | roger dot vermeir at nokia dot com | Date: | Thu, 18 Jul 2019 15:32:51 +0000 |
| Subject: | note 124046 added to array.sorting | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-211615@lists.php.net to get a copy of this message | ||
I tend to use the following code for adding a sort on the keys when different values have the same
key:
<?php
$arr = array();
$res = $db->query("some sql");
while ($row = $res->fetchRow()) {
$key = trim($row[0]); // I know... 'colname' is better
$value = trim($row[1]);
$arr[$key] = $value . "_" . sprintf('%09d', $key); // number
}
arsort($arr);
foreach ($arr as $key=>$value_and_key) {
list($value, $dummykey) = explode("_", $value_and_key);
echo "$key and $value"; // reverse sorted by value, then key
}
?>
Appending the key to the value makes arsort a kind of dual sort.
No need for extra user-defined functions...
Roger Vermeir
----
Server IP: 208.43.231.9
Probable Submitter: 119.81.81.244 (proxied: 135.87.15.246)
----
Manual Page -- http://php.net/manual/en/array.sorting.php
Edit -- https://master.php.net/note/edit/124046
Del: integrated -- https://master.php.net/note/delete/124046/integrated
Del: useless -- https://master.php.net/note/delete/124046/useless
Del: bad code -- https://master.php.net/note/delete/124046/bad+code
Del: spam -- https://master.php.net/note/delete/124046/spam
Del: non-english -- https://master.php.net/note/delete/124046/non-english
Del: in docs -- https://master.php.net/note/delete/124046/in+docs
Del: other reasons-- https://master.php.net/note/delete/124046
Reject -- https://master.php.net/note/reject/124046
Search -- https://master.php.net/manage/user-notes.php