primero que todo veo, un problema
en un array php, no puedes asignar un DOUBLE o FLOAT como INDEX
por que no puedes hacer
Código PHP:
Ver original<?php
$array[ -0.6] = 'el index es invalido';
$array[ 10.15] = 'este otroe s invalido tambien';
debido a que si lo intentas, como lo etas haciendo, PHP interpretara como mejor le convenga, en la version7.1 que probe, redondea el INDEX 0.6 a 0 y el -1.1 a -1
asi que puedes optar por convertir ese INDEX en un STRING para hacerlo valido
Código PHP:
Ver original<?php
$array[ "-0.6"] = 'el index es VALIDO';
$array[ "10.15"] = 'este otroe s VALIDO tambien';
en todo caso creo que te vendria mejor usar la funcion para ordenar array, nativa de php
uasort
https://www.php.net/manual/es/function.uasort.php
Código PHP:
Ver originalfunction comparar_elemento ($a, $b) {
if ($a["prioridad"] == $b["prioridad"]) {
return 0;
}
return ($a["prioridad"] < $b["prioridad"]) ? -1 : 1;
}
como plus, en PHP 5.4 puedes usar funciones LAMBDA y agregar variables en el SCOPE de las funciones
function ( ) use () {}