Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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
usort()多维数组与PHP_Php_Arrays_Facebook Graph Api_Multidimensional Array - Fatal编程技术网

usort()多维数组与PHP

usort()多维数组与PHP,php,arrays,facebook-graph-api,multidimensional-array,Php,Arrays,Facebook Graph Api,Multidimensional Array,这是我的数组:此数组包含2个数组源 中央铸造的立柱和Debe Waisman铸造的立柱 现在我首先得到所有的中央演员职位。然后是德贝·怀斯曼铸造的柱子。就像这样 中央铸造柱 中央铸造柱 中央铸造柱 中央铸造柱 中央铸造柱 德贝·怀斯曼铸造柱 德贝·怀斯曼铸造柱 德贝·怀斯曼铸造柱 德贝·怀斯曼铸造柱 德贝·怀斯曼铸造柱 我想按$updated_时间对这些帖子进行排序,以便使用usort将最新帖子发布在顶部,但我不确定如何使用此功能 以下是我从阵列获取数据的方式: $respons

这是我的数组:此数组包含2个数组源

中央铸造的立柱和Debe Waisman铸造的立柱

现在我首先得到所有的中央演员职位。然后是德贝·怀斯曼铸造的柱子。就像这样

中央铸造柱 中央铸造柱 中央铸造柱 中央铸造柱 中央铸造柱

德贝·怀斯曼铸造柱

德贝·怀斯曼铸造柱 德贝·怀斯曼铸造柱 德贝·怀斯曼铸造柱 德贝·怀斯曼铸造柱 我想按$updated_时间对这些帖子进行排序,以便使用usort将最新帖子发布在顶部,但我不确定如何使用此功能

以下是我从阵列获取数据的方式:

        $response = $request->execute();
        $graphObject = $response->getGraphObject()->AsArray();

        foreach ($graphObject as $keyEntry => $entry){

            foreach( $entry->data as $data ) {
                $string = $data->message;
                $pic = $data->picture;
                $post_id = $data->id;
                $page_name = $data->from->name;
                $time_posted = $data->created_time;
                $updated_time = $data->updated_time;
                $unixtime = strtotime($time_posted);
                $unixtime2 = strtotime($updated_time);


                foreach( $data->actions as $action ) {
                   $link = $action->link;
                  }

                echo '<div class='posts'>$string</div>';
             }
        }

首先我要解决这个问题

echo '<div class='posts'>$string</div>'; 
然后当您有这样一个数组时

 array(
   array( 'updated_time'=>126154655,... ),
   array(...)
)
你可以像这样使用usort

$row['updated_time'] =  $data->updated_time;
$rows[] = $row;
 usort( $array, function($a,$b){
      return $a['updated_time'] < $b['updated_time'] ? -1 : 1;
}
$rows = array();
foreach ($graphObject as $keyEntry => $entry){
    $row = array();
    foreach( $entry->data as $data ) {
        $row['string'] = $data->message;
        $row['pic'] = $data->picture;
        $row['post_id'] = $data->id;
        $row['page_name'] = $data->from->name;
        $row['time_posted'] = $data->created_time;
        $row['updated_time'] = $data->updated_time;
        $row['unixtime'] = strtotime($time_posted);
        $row['unixtime2'] = strtotime($updated_time);
        $row['links'] = array();

        foreach( $data->actions as $action ) {
             $row['links'][] = $action->link;
        }

         $rows[] = $row;
    }
}

usort( $rows, function($a,$b){
     return $a['updated_time'] < $b['updated_time'] ? -1 : 1;
}
像这样的

$row['updated_time'] =  $data->updated_time;
$rows[] = $row;
 usort( $array, function($a,$b){
      return $a['updated_time'] < $b['updated_time'] ? -1 : 1;
}
$rows = array();
foreach ($graphObject as $keyEntry => $entry){
    $row = array();
    foreach( $entry->data as $data ) {
        $row['string'] = $data->message;
        $row['pic'] = $data->picture;
        $row['post_id'] = $data->id;
        $row['page_name'] = $data->from->name;
        $row['time_posted'] = $data->created_time;
        $row['updated_time'] = $data->updated_time;
        $row['unixtime'] = strtotime($time_posted);
        $row['unixtime2'] = strtotime($updated_time);
        $row['links'] = array();

        foreach( $data->actions as $action ) {
             $row['links'][] = $action->link;
        }

         $rows[] = $row;
    }
}

usort( $rows, function($a,$b){
     return $a['updated_time'] < $b['updated_time'] ? -1 : 1;
}
否则,所有这些变量都会在下一个循环中消失,您无法在没有数据的情况下对数据进行排序


更新:由于$data用于对象foreach$entry->data as$data,您将希望使用$rows或其他内容作为顶级数组。

显示此语法错误回显“$string”;你把这些数据放在哪里?您只是将它们放在变量中,而忽略了它们?致命错误:无法将stdClass类型的对象用作第行的数组:'$data[]=$row;'很抱歉,由于您的对象将其更改为$rows之类的其他对象,我的错误$data正在使用中。警告:usort希望参数1为数组,对象给定再次确定,您需要在usort中使用$rows,正如我更新的答案所示。因为$data仍然是您的对象,而不是数据数组:啊,是的。。。对不起,我的大脑没有你的好:谢谢