note 72618 added to function.sort

From: Date: Fri, 26 Jan 2007 11:36:55 +0000
Subject: note 72618 added to function.sort
Groups: php.notes 
Request: Send a blank email to php-notes+get-122219@lists.php.net to get a copy of this message
Sorting of an array by a method of inserts. <? function sortByField($multArray,$sortField,$desc=true){ $tmpKey=''; $ResArray=array(); $maIndex=array_keys($multArray); $maSize=count($multArray)-1; for($i=0; $i < $maSize ; $i++) { $minElement=$i; $tempMin=$multArray[$maIndex[$i]][$sortField]; $tmpKey=$maIndex[$i]; for($j=$i+1; $j <= $maSize; $j++) if($multArray[$maIndex[$j]][$sortField] < $tempMin ) { $minElement=$j; $tmpKey=$maIndex[$j]; $tempMin=$multArray[$maIndex[$j]][$sortField]; } $maIndex[$minElement]=$maIndex[$i]; $maIndex[$i]=$tmpKey; } if($desc) for($j=0;$j<=$maSize;$j++) $ResArray[$maIndex[$j]]=$multArray[$maIndex[$j]]; else for($j=$maSize;$j>=0;$j--) $ResArray[$maIndex[$j]]=$multArray[$maIndex[$j]]; return $ResArray; } // make array $array['aaa']=array("name"=>"vasia","order"=>1); $array['bbb']=array("name"=>"petia","order"=>2); $array['ccc']=array("name"=>"kolia","order"=>3); $array['ddd']=array("name"=>"zenia","order"=>4); // set sort $SortOrder=0; // desc by default , 1- asc var_dump(sortByField($array,'order',$SortOrder)); array 'ddd' => array 'name' => 'zenia' (length=5) 'order' => 4 'aaa' => array 'name' => 'vasia' (length=5) 'order' => 1 'bbb' => array 'name' => 'petia' (length=5) 'order' => 2 'ccc' => array 'name' => 'kolia' (length=5) 'order' => 3 ?> ---- Server IP: 195.222.164.18 Probable Submitter: 195.128.57.169 ---- Manual Page -- http://www.php.net/manual/en/function.sort.php Edit -- https://master.php.net/note/edit/72618 Del: integrated -- https://master.php.net/note/delete/72618/integrated Del: useless -- https://master.php.net/note/delete/72618/useless Del: bad code -- https://master.php.net/note/delete/72618/bad+code Del: spam -- https://master.php.net/note/delete/72618/spam Del: non-english -- https://master.php.net/note/delete/72618/non-english Del: in docs -- https://master.php.net/note/delete/72618/in+docs Del: other reasons-- https://master.php.net/note/delete/72618 Reject -- https://master.php.net/note/reject/72618 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#122219) next »