note 96381 added to function.sort

From: 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

« previous php.notes (#166311) next »