【发布时间】:2019-04-03 08:41:03
【问题描述】:
我知道 PHP end() 函数存在,但我不只是想要对象的最后一个值,我想要最后 500 个值。
我有一个可能包含数千个数据的对象,我想用这些数据在我的前端显示一个图表。但只有最后 500 个值超过该值可能会大大减慢响应时间。
我正在考虑可能反转数据对象的值,取前 500 个值,然后再次反转它。这听起来像是浪费了太多的处理。
我还尝试先将对象转换为数组,然后使用array_slice($array, -500); 并将其转换回PHP 对象并在foreach 中使用。当我这样做时,我得到了错误:
为 foreach() 提供的参数无效
这是代码:
$dataArray = array_slice((array) $data, -5);
$data = json_encode($dataArray);
你有什么想法我在这里做错了什么或者如何更聪明地做到这一点?
【问题讨论】:
-
你能提供一个你的
$data对象的例子吗?如果它是我假设具有字符串属性的对象,那么您如何定义“最后”500 个值? -
@ShaunBebbers 一个包含单个项目的数组切片?
-
倒车并不是一项昂贵的操作。我会去那个解决方案
-
@ShaunBebbers Nakov 的回答正是我想要的反向方法。您还希望我添加您要求的信息吗?
-
@ShaunBebbers 是的,你是对的,下次我提出其他问题时,我会尝试提供更多信息;)谢谢
标签: php arrays json laravel object