Hola a todos, tengo el siguiente código:
function orderByCampo($items, $attr, $order) {
$sortedItems = [];
foreach ($items as $item) {
$key = is_object($item) ? $item->{$attr} : $item[$attr];
$sortedItems[$key] = $item;
}
if ($order === 'desc') {
krsort($sortedItems);
} else {
ksort($sortedItems);
}
return array_values($sortedItems);
}
$arrPrueba = array();
$arrPrueba[0]["id"] = 1;
$arrPrueba[0]["prioridad"] = 1.6;
$arrPrueba[0]["texto"] = "uno";
$arrPrueba[1]["id"] = 2;
$arrPrueba[1]["prioridad"] = 1.0;
$arrPrueba[1]["texto"] = "dos";
$arrPrueba[2]["id"] = 3;
$arrPrueba[2]["prioridad"] = 0.4;
$arrPrueba[2]["texto"] = "tres";
$arrPrueba[3]["id"] = 4;
$arrPrueba[3]["prioridad"] = -0.8;
$arrPrueba[3]["texto"] = "cuatro";
$arrPrueba[4]["id"] = 5;
$arrPrueba[4]["prioridad"] = -0.6;
$arrPrueba[4]["texto"] = "cinco";
orderByCampo($arrPrueba, "prioridad", "asc");
foreach ($arrPrueba as $clave=>$valor) {
echo $valor["id"]."<br>";
echo $valor["prioridad"]."<br>";
echo $valor["texto"];
echo "<hr>";
}
Pero no me funciona, no me ordena el array por el campo prioridad (lo deja como está originalmente). ¿en qué puede estar fallando este código? llevo ya una hora con ello y no localizó en qué puede fallar.
Espero vuestra respuesta.
Muchas gracias por adelantado.