Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP按带日期的内部多维数组对多维数组进行排序_Php_Arrays_Sorting_Multidimensional Array - Fatal编程技术网

PHP按带日期的内部多维数组对多维数组进行排序

PHP按带日期的内部多维数组对多维数组进行排序,php,arrays,sorting,multidimensional-array,Php,Arrays,Sorting,Multidimensional Array,我搜索了这个网站,寻找答案,但我无法让它工作。所以最后我发布了这个问题,知道有很多可能的重复。但是当我尝试使用这些答案时,我会收到stdClass的错误消息 我有一个包含以下值的数组: Array ( [1251] => stdClass Object ( [vid] => 1253 [uid] => 20 [body] => Array (

我搜索了这个网站,寻找答案,但我无法让它工作。所以最后我发布了这个问题,知道有很多可能的重复。但是当我尝试使用这些答案时,我会收到stdClass的错误消息

我有一个包含以下值的数组:

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]=>对象。。然后对数组进行排序。