编辑:这是一个重复的问题。关闭这个
我有一个存储在$ articles中的对象数组,并且它们不一定以任何特定的顺序返回。我正在尝试根据idarticle对对象进行排序。我知道如何在javascript中执行此操作,但不知道如何在PHP中执行此操作。这是一个示例响应。为了便于阅读,我用json_encode回应了它。任何帮助都会很棒
[
{
"idarticles":"61",
"full_text":"",
"main_image":"",
"tags":null,
"url":null,
"summary":null,
"title":"No Title Given"
},
{
"idarticles":"64",
"full_text":"",
"main_image":"http:\/\/i2.cdn.turner.com\/cnn\/dam\/assets\/121014085050-11-stratos-1014-horizontal-gallery.jpg",
"tags":"Sound,New Mexico,Maxima and minima",
"url":"some string",
"summary":"text",
"title":"text"
},
{
"idarticles":"63",
"full_text":"",
"main_image":"http:\/\/i2.cdn.turner.com\/cnn\/dam\/assets\/121014085050-11-stratos-1014-horizontal-gallery.jpg",
"tags":"Sound,New Mexico,Maxima and minima",
"url":"some string",
"summary":"text",
"title":"text"
}
]
答案 0 :(得分:1)
这很简单 - 使用uasort
函数(用户定义的排序):
uasort($yourData, function ($a, $b) {
if ($a['idarticles'] == $b['idarticles']) {
return 0;
}
return ($a['idarticles'] < $b['idarticles']) ? -1 : 1;
});
比较函数在这里非常标准(参见示例here) - 只是它不是按值本身排序,而是按数据中的某些键排序。
答案 1 :(得分:0)
尝试使用usort
:
function sortByArticleId($a,$b){
return strcmp($a->idarticles,$b->idarticles);
}
usort($ary,'sortByArticleId');
答案 2 :(得分:0)
你可以简单地做
usort($list, function ($a, $b) {
$a = $a['idarticles'];
$b = $b['idarticles'];
return ($a == $b) ? 0 : (($a < $b) ? -1 : 1);
});