這個問題在這里已經有了答案: 使用 PHP 按值對 json 陣列進行排序 1 個答案 如何在 PHP 中對陣列和資料進行排序? (13 個回答) 2天前關閉。
使用 WordPress REST API,我在外部獲取帖子: https ://example.com/wp-json/wp/v2/posts?orderby=date&order=desc&per_page=12
身體結果:
[
{
"date": "2022-05-05T12:12:12",
"link": "https://example.com/blog/132/",
"title": {
"rendered": "F: Title"
}
},
{
"date": "2022-04-04T12:12:12",
"link": "https://example.com/blog/434/",
"title": {
"rendered": "E: Title"
}
},
{
"date": "2022-03-03T12:12:12",
"link": "https://example.com/blog/324/",
"title": {
"rendered": "A: Title"
}
},
etc...
]
我想按字母順序對標題進行排序。
最好的解決方案是什么?
我無法使用 WP_Query,因為帖子是從外部 WP API 源中提取的。
uj5u.com熱心網友回復:
使用此函式對任何陣列進行排序
function array_sort($array, $on, $order = SORT_ASC)
{
$new_array = array();
$sortable_array = array();
if (count($array) > 0) {
foreach ($array as $k => $v) {
if (is_array($v)) {
foreach ($v as $k2 => $v2) {
if ($k2 == $on) {
$sortable_array[$k] = $v2;
}
}
} else {
$sortable_array[$k] = $v;
}
}
switch ($order) {
case SORT_ASC:
asort($sortable_array);
break;
case SORT_DESC:
arsort($sortable_array);
break;
}
foreach ($sortable_array as $k => $v) {
$new_array[$k] = $array[$k];
}
}
return $new_array;
}
uj5u.com熱心網友回復:
可能是這樣的:
<?php
function cmp($a, $b)
{
if ($a['title']['rendered'] == $b['title']['rendered']) {
return 0;
}
return ($a['title']['rendered'] < $b['title']['rendered']) ? -1 : 1;
}
$ar = json_decode($yourJson, TRUE);
usort($ar, "cmp");
...
?>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/480614.html