сортировать данные json или многомерные массивы в php

Я проверил сайт и есть тонны ответов, относящихся к этому вопросу. Но я изучаю PHP. Поэтому мне очень трудно понять. В любом случае,

$data = array(); $data['count'] = $result->num_rows; ... ... $data['content'][] = array( "userid" => $userid, "title" => $title, "slug" => $slug, "download" => $download, "usrtitle" => $usrtitle, "company" => $company, "period" => $period, "email" => $email, "mobile" => $mobile, "fname" => $fname, "lname" => $lname, "address" => $address, "pic" => $pic, "appliedon" => date("dMY", strtotime($appliedon)), "price" => $price ); echo json_encode($data);exit; 

Я использую ajax для извлечения данных из базы данных. Все работает нормально, но я хочу сортировать данные по цене. Я не могу его жестко закодировать, потому что я хочу, чтобы пользователь выбирал то же самое. Есть вложенные запросы mysql, и невозможно сортировать данные из запроса mysql. Потому что данные поступают из нескольких запросов.

Пожалуйста, сообщите, как я могу сортировать данные.

Я нашел этот вопрос на SO Как сортировать многомерный массив в PHP Я не уверен, что это будет работать в моем случае или нет.

благодаря

Изменить: структура таблицы базы данных.

userid, title, slug,email,mobile,fname,lname,address,pic поступает из таблицы пользователей. download, usrtitle, company,price из таблицы профилей. appliedon из таблицы применения.

Первый запрос выполняется на прикладной таблице, откуда я получаю идентификатор пользователя. этот userid используется в файлах пользователей и профилей для получения сведений. Я не уверен, что могу использовать orderby для сортировки данных здесь.

PHP встроенная функция array_multisort работает для этого случая.

1. Получите массив цен, исходящих из $data['content']

 $sort_arr = array(); foreach($data['content'] as $item) { $sort_arr[] = $item['price']; } 

array_multisort для сортировки $data['content'] по цене в порядке спуска:

 //if you want ascending order replace `SORT_DESC` by `SORT_ASC` array_multisort($sort_arr, SORT_NUMERIC, SORT_DESC, $data['content']) 

Более подробно использование array_multisort , см. Официальную документацию: http://php.net/manual/en/function.array-multisort.php

Вы можете использовать usort и определить собственную функцию сортировки:

 $data = [ ["name" => "A", "price" => 54], ["name" => "B", "price" => 102], ["name" => "C", "price" => 4], ["name" => "D", "price" => 76], ]; echo("UNSORTED <br>\n"); print_r($data); usort($data, function($a, $b) { return $a["price"] - $b["price"]; }); echo("\n<br>\n<br>SORTED <br>\n"); print_r($data); 

Если вы хотите заказать по именам (или другой строке), вы можете, например, использовать strnatcmp .

 usort($data, function($a, $b) { return strnatcmp($a["name"], $b["name"]); });