Сортировка массива объектов PHP без ключей? - PullRequest
0 голосов
/ 06 марта 2019

Я создаю список кухонь, таких как:

$lists='';
$stmt="SELECT cuisine_id, cuisine_name, cuisine_name_trans FROM db_cuisine";

if ( $res=$DbExt->rst($stmt)){
    if ($list){
        foreach ($res as $val) {    

            $cuisine_json['cuisine_name_trans']=!empty($val['cuisine_name_trans'])?
            json_decode($val['cuisine_name_trans'],true):'';

            $lists[$val['cuisine_id']]="".qTranslate($val['cuisine_name'],'cuisine_name',$cuisine_json);
        }
        return $lists;
    }
    return $res;
}       
return false;

Список затем возвращается как:

1: "American"
5: "Sandwiches"
6: "Barbeque"
8: "Italian"
9: "Mexican"
10: "Sushi"
11: "Burgers"
13: "Japanese"

(IDs в соответствии с идентификатором базы данных). Я пытаюсь отсортировать их сейчас descending by name, но мне кажется, что я не могу сделать это с sort, так как для этого нужно имя ключа. Как мне это сделать?

Ответы [ 2 ]

2 голосов
/ 06 марта 2019

Сортировка с помощью sql вместо php

$stmt="SELECT cuisine_id, cuisine_name, cuisine_name_trans FROM db_cuisine WHERE 1 ORDER BY cuisine_name DESC ";
0 голосов
/ 06 марта 2019

Вы можете использовать функцию PHP arsort . Сортирует массив по значению в порядке убывания. Ваш окончательный код должен быть таким:

if ( $res=$DbExt->rst($stmt)){
    if ($list){
        foreach ($res as $val) {    

            $cuisine_json['cuisine_name_trans']=!empty($val['cuisine_name_trans'])?
            json_decode($val['cuisine_name_trans'],true):'';

            $lists[$val['cuisine_id']]="".qTranslate($val['cuisine_name'],'cuisine_name',$cuisine_json);
        }
        arsort($lists);
        return $lists;
    }
    return $res;
}       
return false;

Я также рекомендую проверить эту страницу , чтобы получить больше информации о функциях сортировки массива PHP.

...