不能通过键引用的大量对象

问题描述

| 我们向具有最新工作的用户发送电子邮件,因此我们拥有大约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\'));