/* 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
<p>Cursuri graruite: <mark>MarPlo.net</mark> , jocuri, anime.</p>
a:hover { font-weight: bold; color: #00da01; }
var num = 12.34567; num = num.toFixed(2); alert(num); // 12.35
$arr = file("a_file.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); var_export($arr);
What time is it? It is a quarter to 5. - Cat este ora? E 5 fara un sfert.
¿Qué hora es? Son las tres menos cuarto. - Cat este ora? E 3 fara un sfert.