如何解决不能通过键引用的大量对象
| 我们向具有最新工作的用户发送电子邮件,因此我们拥有大约1800个用户对象。 我使用for循环遍历对象$part = $this->getRequest()->getParam(\'part\') ? : 1;
$parts = 2;
$jobagents = RAD::registry(\'jobagents\');
$jobagentsLength = count($jobagents);
$sliceCount = $jobagentsLength / $parts;
for ($x = 0; $x < $jobagentsLength; $x++) {
$slice = $x + 1;
if ($slice > ceil($sliceCount * ($part - 1)) && $slice <= ceil($sliceCount * $part)) {
$jobagent = $jobagents[$x];
}
}
切片if用于确定我们要发送的对象数组的哪一部分(一次就可以沉重地发送)-我释放了,它可能做得更聪明-但是if通过了,所以不是不是眼前的问题。
问题是
$jobagent = $jobagents[$x];
第一个循环很好,$ jobagent现在是一个对象-但之后它看起来为空,并且我已经通过在循环中添加回显来检查是否遍历了所有内容-并且我尝试了print_r \'ing数组,它具有1800+个对象,键的范围为0-18xx
我是否缺少某些具有一定大小的对象数组并通过键引用它们的东西?如果我使用foreach的对象很好。
问题已解决,在极端情况下数组被覆盖
解决方法
如果您确实收到对象列表(=它是一个适当的数组),那么为简单起见,请尝试:
$jobagents = array_slice($jobagents,$i * $sliceCount,$sliceCount);
foreach ($jobagents as $j) {
但是,我怀疑这不是您的实际问题根源。自身未固定的对象在某种程度上并不常见。
,可以肯定的是,您确实拥有简单的数组
$jobagents = array_values(RAD::registry(\'jobagents\'));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。