note 97143 added to function.sort

From: Date: Sun, 04 Apr 2010 11:10:34 +0000
Subject: note 97143 added to function.sort
Groups: php.notes 
Request: Send a blank email to php-notes+get-167682@lists.php.net to get a copy of this message
100% working function # 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', 1); echo '<pre>'; exit(print_R($array)); ---- 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/97143 Del: integrated -- https://master.php.net/note/delete/97143/integrated Del: useless -- https://master.php.net/note/delete/97143/useless Del: bad code -- https://master.php.net/note/delete/97143/bad+code Del: spam -- https://master.php.net/note/delete/97143/spam Del: non-english -- https://master.php.net/note/delete/97143/non-english Del: in docs -- https://master.php.net/note/delete/97143/in+docs Del: other reasons-- https://master.php.net/note/delete/97143 Reject -- https://master.php.net/note/reject/97143 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#167682) next »