PHP按带日期的内部多维数组对多维数组进行排序
我搜索了这个网站,寻找答案,但我无法让它工作。所以最后我发布了这个问题,知道有很多可能的重复。但是当我尝试使用这些答案时,我会收到stdClass的错误消息 我有一个包含以下值的数组:PHP按带日期的内部多维数组对多维数组进行排序,php,arrays,sorting,multidimensional-array,Php,Arrays,Sorting,Multidimensional Array,我搜索了这个网站,寻找答案,但我无法让它工作。所以最后我发布了这个问题,知道有很多可能的重复。但是当我尝试使用这些答案时,我会收到stdClass的错误消息 我有一个包含以下值的数组: Array ( [1251] => stdClass Object ( [vid] => 1253 [uid] => 20 [body] => Array (
Array
(
[1251] => stdClass Object
(
[vid] => 1253
[uid] => 20
[body] => Array
(
)
[field_datum] => Array
(
[und] => Array
(
[0] => Array
(
[value] => 2016-09-17T11:30:00
[timezone] => Europe/Brussels
[timezone_db] => UTC
[date_type] => date
)
)
)
)
我必须用字段的值对这个数组进行排序
[field_datum][und][0][value]
我尝试过这种解决方案:
但我认为这是一个错误
致命错误:无法使用stdClass类型的对象作为数组根据您给出的所有答案,我找到了一个解决方案
function cmp($a, $b) {
if ($a->field_datum == $b->field_datum) {
return 0;
} else {
return $b->field_datum < $a->field_datum ? 1 : -1;
}
}
usort($infodagen, 'cmp');
函数cmp($a,$b){
如果($a->field\u datum==$b->field\u datum){
返回0;
}否则{
返回$b->field\u datum<$a->field\u datum?1:-1;
}
}
usort($infodagen,'cmp');
发布导致错误的代码。错误是因为您使用了对象,而解决方案使用了数组。类->属性,没有类['attribute']。示例与您的情况非常不同。您需要迭代到数组并获取值日期,将此值转换为时间戳,然后创建新的数组[timestamp1][0]=>对象,数组[timestamp1][1]=>对象,数组[timestamp2][0]=>对象。。然后对数组进行排序。