note 96381 added to function.sort
| From: | boozingg at ya dot ru | Date: | Wed, 24 Feb 2010 09:26:43 +0000 |
| Subject: | note 96381 added to function.sort | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-166311@lists.php.net to get a copy of this message | ||
Work 100%
<?
# array
$array = array(
'a' => array(
'abc' => "10.39",
'qwerty' => "123",
),
'd' => array(
'abc' => "5.39",
'qwerty' => "123",
),
'c' => array(
'abc' => "15.39",
'qwerty' => "123",
),
);
# sort - abc or qwerty
# direction - 1/0 or true/false
function sort_by($array, $sort, $direction = 0) {
$tmp = array();
foreach ($array as $k=>$v) {
if (!empty($v[$sort]))
$tmp[$k] = $v[$sort];
}
if (!empty($direction)) {
$tmp2 = $tmp;
sort($tmp);
$tmp3 = array();
foreach ($tmp as $k=>$v) {
foreach ($tmp2 as $k2=>$v2) {
if ($v2 == $v) {
$tmp3[$k2] = $v;
}
}
}
$tmp4 = array();
if (!empty($array))
foreach ($array as $k=>$v) {
$found = false;
foreach ($tmp3 as $k2=>$v2)
if ($k2 == $k) {
$found = true;
}
if (!$found)
$tmp4[$k] = $v;
}
foreach ($tmp3 as $k=>$v)
$tmp4[$k] = $array[$k];
} else {
$tmp2 = $tmp;
rsort($tmp);
$tmp3 = array();
foreach ($tmp as $k=>$v) {
foreach ($tmp2 as $k2=>$v2) {
if ($v2 == $v) {
$tmp3[$k2] = $v;
}
}
}
$tmp4 = array();
foreach ($tmp3 as $k=>$v) {
$tmp4[$k] = $array[$k];
unset($array[$k]);
}
if (!empty($array))
foreach ($array as $k=>$v)
$tmp4[$k] = $v;
}
$array = $tmp4;
return $array;
}
$array = sort_by($array, 'abc', 0);
echo '<pre>';
exit(print_R($array));
?>
#
# Output
#
Array
(
[c] => Array
(
[abc] => 15.39
[qwerty] => 123
)
[a] => Array
(
[abc] => 10.39
[qwerty] => 123
)
[d] => Array
(
[abc] => 5.39
[qwerty] => 123
)
)
1
Otherwise for "1" direction
Array
(
[d] => Array
(
[abc] => 5.39
[qwerty] => 123
)
[a] => Array
(
[abc] => 10.39
[qwerty] => 123
)
[c] => Array
(
[abc] => 15.39
[qwerty] => 123
)
)
1
-hd
----
Server IP: 195.54.192.44
Probable Submitter: 127.0.0.1
----
Manual Page -- http://www.php.net/manual/en/function.sort.php
Edit -- https://master.php.net/note/edit/96381
Del: integrated -- https://master.php.net/note/delete/96381/integrated
Del: useless -- https://master.php.net/note/delete/96381/useless
Del: bad code -- https://master.php.net/note/delete/96381/bad+code
Del: spam -- https://master.php.net/note/delete/96381/spam
Del: non-english -- https://master.php.net/note/delete/96381/non-english
Del: in docs -- https://master.php.net/note/delete/96381/in+docs
Del: other reasons-- https://master.php.net/note/delete/96381
Reject -- https://master.php.net/note/reject/96381
Search -- https://master.php.net/manage/user-notes.php