我使用JSON
显示来自多个array
文件的数据,并使用sort();
将ID
的值从最高到最低排序。
我遇到的问题是sort();
分别对这两个数组进行排序,导致输出以下内容:
11,9和7 (第一个数组)被排序,56,12和5 (第二个数组)被排序。如何合并数组以便输出以下内容:
这是我的JSON数组:
$homepage = array();
$homepage[] = '{
"info": {
"collection": [
{
"ID": "7"
},
{
"ID": "9"
},
{
"ID": "11"
}
]
}
}';
$homepage[] = '{
"info": {
"collection": [
{
"ID": "12"
},
{
"ID": "56"
},
{
"ID": "5"
}
]
}
}';
在这里我解码JSON数组,对其进行排序并回显它:
foreach ($homepage as $homepage2) {
$data = json_decode($homepage2, false);
usort($data->info->collection, function ($a, $b) {
return $b->ID - $a->ID;
});
foreach($data->info->collection as $key) {
echo'
'.$key->ID.'
';
}
}
答案 0 :(得分:3)
首先,您需要将这些jsons解码为数组并将其添加到例如$homepage_decoded
...
$homepage_decoded = array();
foreach($homepage as $hp)
$homepage_decoded[] = json_decode($hp,true);
$merged = array_unique(call_user_func_array('array_merge', $merged));
然后排序$merged
...
sort($merged,SORT_NUMERIC);
打扰一下,如果我给出的代码中有一些语法错误,请从手机写入。但想法应该是明确的。