Supongamos que tengo varias matrices.
$a = array("E", "A", NULL, "D", "C"); $b = array("Dog","Cat","Horse","Bear","Zebra"); $c = array(12, 11, 20, 30, 19);La primera matriz no es necesariamente numérica y puede contener valores nulos.
Quiero ordenar las 3 matrices por orden de primero, es decir, para obtener
"A", "C", "D", "E", NULL "Cat", "Zebra", "Bear", "Dog", "Horse" 11, 19, 30, 12, 20Es decir, tuplas ("E", "Perro", 12), ("A", "Gato", 11), (NULO, "Caballo", 20), ("D", "Oso", 30), (" C", "Zebra", 19) debe conservarse.
No me importa lo que suceda con los casos nulos: pueden permanecer en su lugar o ir al final o al principio.
Puede usar array_multisort para ordenar varias matrices en función de la primera matriz. Vea el siguiente ejemplo
$a = array("E", "A", NULL, "D", "C"); $b = array("Dog","Cat","Horse","Bear","Zebra"); $c = array(12, 11, 20, 30, 19); array_multisort($a, SORT_ASC, SORT_STRING, $b, $c); // $b and $c sorting based on $a echo "<pre>"; print_r($b); print_r($c);Espero que mi publicación te ayude. Aquí estamos usando dos funciones array_combine y ksort . array_combine combinará values con las keys y ksort ordenará una matriz por clave
Pruebe este fragmento de código aquí
<?php ini_set('display_errors', 1); $a = array(5, 1, 2, 4, 3); $b = array("Dog","Cat","Horse","Bear","Zebra"); $combined=array_combine($a, $b); ksort($combined); print_r($combined);Producción:
Array ( [1] => Cat [2] => Horse [3] => Zebra [4] => Bear [5] => Dog )puedes hacer una matriz como
$array = array( '1'=>"Cat", '2' => 'Horse', '3' => 'Zebra', '4' => 'Bear', '5' => 'Dog', );Esto se logra usando array_combine($a, $b) Después de eso, puede usar ksort en la matriz combinada.