/* Ordoneaza un intreg Array multi-dimensional - $arr = array-ul multi-dimensional - $k = un sir cu numele de index /cheie din array-ul copil, dupa care se face ordonarea - $sort = una din aceste optiuni de sortare: SORT_ASC - ordoneaza crescator. SORT_DESC - ordoneaza descrescator. SORT_REGULAR - compara elementele normal (nu schimba tipul) SORT_NUMERIC - compara elementele numeric SORT_STRING - compara ca tip sir (string) SORT_LOCALE_STRING - compara ca tip sir bazat pe current-locale, care poate fi modificat cu setlocale() SORT_NATURAL - compara elementele ca tip sir, folosind "ordinea normala" precum natsort() */ function sortMultiArray($arr, $k, $sort) { $tmp = Array(); foreach($arr as &$ma) $tmp[] = &$ma[$k]; $tmp = array_map('strtolower', $tmp); // pt case-insensitive array_multisort($tmp, $sort, $arr); return $arr; }- Examplu utilizare. Ordooneaza acest array, dupa "nr", descrescator; si dupa "fruit".
$arr = array( 'alex'=>array('nr'=>3, 'fruit'=>'orange'), 'mars'=>array('nr'=>8, 'fruit'=>'Banana'), 'victor'=>array('nr'=>4, 'fruit'=>'apple'), );Cod php:
<?php // https://marplo.net/php-mysql/ /* Ordoneaza un intreg Array multi-dimensional - $arr = array-ul multi-dimensional - $k = un sir cu numele de index /cheie din array-ul copil, dupa care se face ordonarea - $sort = una din aceste optiuni de sortare: SORT_ASC - ordoneaza crescator. SORT_DESC - ordoneaza descrescator. SORT_REGULAR - compara elementele normal (nu schimba tipul) SORT_NUMERIC - compara elementele numeric SORT_STRING - compara ca tip sir (string) SORT_LOCALE_STRING - compara ca tip sir bazat pe current-locale, care poate fi modificat cu setlocale() SORT_NATURAL - compara elementele ca tip sir, folosind "ordinea normala" precum natsort() */ function sortMultiArray($arr, $k, $sort) { $tmp = Array(); foreach($arr as &$ma) $tmp[] = &$ma[$k]; $tmp = array_map('strtolower', $tmp); // pt case-insensitive array_multisort($tmp, $sort, $arr); return $arr; } // array bi-dimensional $arr = array( 'alex'=>array('nr'=>3, 'fruit'=>'orange'), 'mars'=>array('nr'=>8, 'fruit'=>'Banana'), 'victor'=>array('nr'=>4, 'fruit'=>'apple'), ); // ordoneaza array-ul dupa 'nr', descrescator $arr1 = sortMultiArray($arr, 'nr', SORT_DESC); // sorteaza dupa 'fruit' $arr2 = sortMultiArray($arr, 'fruit', SORT_STRING); // Test echo '<pre>Dupa "nr":<br/>'; var_export($arr1); echo '<br/><br/>Dupa "fruit":<br/>'; var_export($arr2); echo '</pre>';Rezultat:
Dupa "nr": array ( 'mars' => array ( 'nr' => 8, 'fruit' => 'Banana' ), 'victor' => array ( 'nr' => 4, 'fruit' => 'apple' ), 'alex' => array ( 'nr' => 3, 'fruit' => 'orange' ) ) Dupa "fruit": array ( 'victor' => array ( 'nr' => 4, 'fruit' => 'apple' ), 'mars' => array ( 'nr' => 8, 'fruit' => 'Banana' ), 'alex' => array ( 'nr' => 3, 'fruit' => 'orange' ) )
Functia sortMultiArray() efectueaza o sortare case-insensitive (fara diferenta intre litere mici si mari). Pentru a efectua o sortare case-sensitive (sirurile cu litera mare sa apara in fata celor cu litera mica) stergeti (sau schimbati in comentariu, cu "//") aceasta linie de cod din functie.
$tmp = array_map('strtolower', $tmp); // pt case-insensitive
<img src="http://coursesweb.net/imgs/webcourses.gif" width="191" height="63" alt="Courses-Web" />
#id { font-style: italic; }
$(document).ready(function() { $(".a_class").click(function(){ $(this).hide("slow"); }); });
function fname($a, $b) { echo $a * $b; }
I have been walking for 5 hours. - Merg pe jos de 5 ore.
Yo fui entrenador. - Am fost antrenor.