When I want to sort an array alphabetically based on an array field I do this:
// Compara se $a é maior que $b
function cmp($a, $b) {
return $a['nome'] > $b['nome'];
}
// Ordena
usort($produtos, 'cmp');
This works perfectly, but I wanted to simplify everything in a single function, to make it easier for me to call it.
Try to do this:
function Ordena_Array ($array, $campo) {
// Compara se $a é maior que $b
function cmp($a, $b) {
return $a[$campo] > $b[$campo];
}
// Ordena
return usort($array, 'cmp');
}
Example of how I tried to do
$array = array(
array( 'nome' => 'Alexandre', 'idade' => '65' ),
array( 'nome' => 'Alex', 'idade' => '33' ),
array( 'nome' => 'Zezinha', 'idade' => '29' ),
array( 'nome' => 'Rosana', 'idade' => '64' )
);
function Ordena_Array ($array, $campo) {
// Compara se $a é maior que $b
function cmp($a, $b) {
return $a[$campo] > $b[$campo];
}
// Ordena
return usort($array, 'cmp');
}
// Mostra os valores
print_r( Ordena_Array ($array, "nome") );
Errors:
NOTICE Undefined variable: campo on line number 14
NOTICE Undefined index: on line number 14
Note: I'm using PHP 7.2