Curs Php-mysql

Functia prezentata in aceasta pagina (sortMultiArray() ) poate sorta /ordona un intreg array multi-dimensional dupa un element din array-ul copil, case-insensitive (fara diferenta intre litere mici si mari). Returneaza array-ul multi-dimensional ordonat.
    - Codul functiei:
/*
 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


Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Ce atribut e folosit in tag-ul <img> pentru adresa imaginii?
href src rel
<img src="http://coursesweb.net/imgs/webcourses.gif" width="191" height="63" alt="Courses-Web" />
Care din aceste coduri CSS ascunde elementul in pagina?
display: none; display: inline; position: relative;
#id {
  display: none;
}
Ce instructiune opreste executia lui while() sau for() ?
continue prompt() break
for(var i = 0; i< 8; i++) {
  if(i > 1) break;
  alert(i);
}
Indicati functia utilizata pentru a crea constante.
define() include() defined()
define("CONSTANT_NAME", "value");
echo CONSTANT_NAME;
Care este forma de plural a substativului "class" (clasa)?
classes clases clasis
This school has three classes.
- Scoala asta are trei clase.
Care este pluralul substativului "voz" (voce)?
vose voze voces
Escuché dos voces.
- Am auzit doua voci.
Ordonare intreg Array multi-dimensional

Last accessed pages

  1. Tag-urile DIV si SPAN (8751)
  2. Pronumele in limba engleza - Pronouns (45529)
  3. Parables and Meaningful Stories (1343)
  4. Creare si editare pagini HTML (76366)
  5. Verbe modale - Modal verbs - CAN, COULD, MAY, MIGHT, MUST (60542)

Popular pages this month

  1. Conditional IF in Limba Engleza - Fraze Conditionale (1755)
  2. Exercitii engleza - English Tests and exercises - Grammar (1667)
  3. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (1491)
  4. Curs HTML gratuit Tutoriale HTML5 (1191)
  5. Coduri pt culori (1178)