To sort a descending array you must use the krsort
function, but this function 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
in this case 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 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"}}]"