PHP: Ordenació d’un array de 2 dimensions
Lectures: 577
Bé, no és tan simple... es tracta d'ordenar un array de 2 dimensions segons un camp de la segona dimensió. Per explicar-me, poso un exemple: Tenim varis arrays on posem el nom i el cognom de persones, tots ells dins d'un altre array, quedant com un recordset de fitxes de persones.
I volem ordenar aquest array de 2 dimensions segons el cognom. Però podem simplificar el tema i usar el asort() que ordena mantenint les claus dels elements... com? Doncs molt fàcil:
Primer de tot, muntarem un array simple amb els elements que volem ordenar, els cognoms, mantenint l'ordre:
Ara tenim un array simple, que ordenarem mantenint les claus de cada element:
I ara que el tenim ordenat, muntarem l'array final amb les fitxes senceres, usant l'ordre que té l'array auxiliar:
-
foreach($array_aux as $key => $value)
-
{
-
$array_final[]= $array[$key];
-
}
I ja el tenim ordenat. De fet, podriem escriure una funció genèrica per fer aquest tipus d'ordenació:
-
function sort2Darray($array, $clau)
-
{
-
-
foreach($array as $pos => $element)
-
{
-
$array_aux[]=$element[$clau];
-
}
-
-
-
foreach($array_aux as $key => $value)
-
{
-
$array_final[]= $array[$key];
-
}
-
-
return $array_final;
-
}
La única cosa que he posat de mes és una comprovació de que els paràmetres passats siguin els passats...
Salut!
Home
Tecnologia
Flashos
Humor
Videos
Lletres
Fotos






