获取php对象的最后500个值?

获取php对象的最后500个值?,php,arrays,json,laravel,object,Php,Arrays,Json,Laravel,Object,我知道PHP end()函数存在,但我不只是想要对象的最后一个值,我想要最后500个值 我有一个可能有数千个数据的对象,我想用这些数据在前端显示一个图形。但只有最后500个值超过这个值,才能大大降低响应时间 我在想也许可以反转数据对象的值,取前500个值,然后再反转回来。这听起来像是浪费了太多的处理时间 我还尝试先将对象转换为数组,然后使用array\u切片($array,-500)并将其转换回PHP对象,并在foreach中使用它。当我这样做时,我会得到错误: 为foreach()提供的参数无

我知道PHP end()函数存在,但我不只是想要对象的最后一个值,我想要最后500个值

我有一个可能有数千个数据的对象,我想用这些数据在前端显示一个图形。但只有最后500个值超过这个值,才能大大降低响应时间

我在想也许可以反转数据对象的值,取前500个值,然后再反转回来。这听起来像是浪费了太多的处理时间

我还尝试先将对象转换为数组,然后使用
array\u切片($array,-500)并将其转换回PHP对象,并在
foreach
中使用它。当我这样做时,我会得到错误:

为foreach()提供的参数无效

代码如下:

$dataArray = array_slice((array) $data, -5);
$data = json_encode($dataArray);

你知道我做错了什么,或者如何做得更聪明吗?

如果你的
$data
对象是一组项目,你可以使用以下方法:

$data->reverse()->take(500)->get();
或者将数组转换为集合

collect($data)->reverse()->take(500)->get();
$count=1000;
$arrValue=[];
$arrValueMD=[];
对于($i=0;$i<$count;$i++){
数组推送($arrValue,$i);
}
foreach($k=>&v的价值){
数组推送($arrValueMD,$k,$v);
//echo“当前\$a:$k$v的值。\n”;
}
//印刷费($arrValueMD);
$n=500;
$arr=数组\u片($arrValueMD,-$n);
印刷费($arr);

能否提供
$data
对象的示例?如果它是一个我假设具有字符串属性的对象,那么您如何定义“最后”500个值?@ShaunBebbers使用单个项在数组上定义一个切片?反转操作并不昂贵。我会同意的solution@ShaunBebbersNakov的回答完全符合我对反向方法的要求。你还想让我添加你要求的信息吗?@ShaunBebbers是的,你是对的,下次我再问其他问题时,我会尽力提供更多信息;)谢谢如果我使用顶行,我会得到“get操作缺少参数”,但一旦我删除它,它就可以正常工作了!
    $count = 1000;
    $arrValue = [];

    $arrValueMD = [];

    for ($i=0; $i < $count; $i++) {

        array_push($arrValue, $i);

    }

    foreach ($arrValue as $k => &$v) {

        array_push($arrValueMD, $k, $v);
     //  echo "Current value of \$a:$k $v.\n";
    }
     //   print_r($arrValueMD);

    $n = 500;
    $arr = array_slice($arrValueMD, -$n);
    print_r($arr);