To sort an array down you must use the function krsort
, but this function will keep the original keys. If you want to ensure this new order, you can use array_values
to get a copy of the array with new keys.
$vetor = [
1 => [
'pt-BR' => [
'pergunta1' => 'pergunta 1 em texto',
'resposta1' => 'resposta 1 em texto'
]
],
3 => [
'pt-BR' => [
'pergunta3' => 'pergunta 3 em texto',
'resposta3' => 'resposta 3 em texto'
]
]
];
krsort($vetor);// ordena de forma decrescente
$vetor = array_values($vetor);// extrai os valores do array e cria novas chaves para ele
var_dump($vetor);
$vetor = json_encode($vetor);// json na ordem desejada
var_dump($vetor);
The result of the first var_dump
then it will be:
array(2) {
[0]=>
array(1) {
["pt-BR"]=>
array(2) {
["pergunta3"]=>
string(19) "pergunta 3 em texto"
["resposta3"]=>
string(19) "resposta 3 em texto"
}
}
[1]=>
array(1) {
["pt-BR"]=>
array(2) {
["pergunta1"]=>
string(19) "pergunta 1 em texto"
["resposta1"]=>
string(19) "resposta 1 em texto"
}
}
}
And the second var_dump
after the json_encode
will return:
string(161) "[{"pt-BR":{"pergunta3":"pergunta 3 em texto","resposta3":"resposta 3 em texto"}},{"pt-BR":{"pergunta1":"pergunta 1 em texto","resposta1":"resposta 1 em texto"}}]"
How about "3 before 1" and "keep that order"?
– Woss
Descending order?
– Don't Panic
The order I set it. It does not maintain the order and orders it crescently.
– Gabriel Silva
Because it’s a array. If you need it ordered, you will have to sort it when using the data.
– Woss