查找和更新PHP 2D数组元素


Finding and Updating PHP 2D Array Elements

这是一个相当新手的问题-我在这里和互联网上看到了类似问题的类似解决方案,但我似乎找不到这个问题的问题所在。

我正在玩PHP,并编写一些代码,从API中提取所有邮件数据。然而,我注意到加载时间非常非常慢,这是因为对于每封邮件的内容,我都要进行单独的查询。从那以后,我已经想好了如何一次提取我想要的东西,但我在添加返回到我的2D数组的数据时遇到了困难,我在输出数据之前将数据存储在该数组中。

下面是我的数组;

$mailMessage = array(
               array(
        'mailNumber' => $mailCount,
        'mailID' => $mailID,
        'mailDate' => $mailDate,
        'mailSender' => $mailSender,
        'mailSenderName' => null,
        'mailMsg' => null
        ));

以下是我尝试更新所述数组的方式;

    foreach ($mailMessage as &$row){
    if($row['mailID'] == $getMailID){
        $row['mailMsg'] = $body;
    break;
    }
}

因此,我正在检查mailID是否与我当前查看的相同,如果是,我将尝试将该行上数组的mailMsg部分更新为$body。我检查了

然而,这并不奏效。没有PHP错误消息被标记出来——(有时情况更糟!)我的头几乎撞到了砖墙上。

感谢阅读&对于您的时间,

Jamie

使用多维数组而不仅仅是关联数组是有原因的吗?您没有对任何索引进行迭代,因为聚合数组格式中不存在任何索引。正确的格式应该是:

多维:

$mailMessage = array(
    0 => array(
        'mailNumber' => $mailCount,
        'mailID' => $mailID,
        'mailDate' => $mailDate,
        'mailSender' => $mailSender,
        'mailSenderName' => null,
        'mailMsg' => null
    )
);

关联:

$mailMessage = array(
    'mailNumber' => $mailCount,
    'mailID' => $mailID,
    'mailDate' => $mailDate,
    'mailSender' => $mailSender,
    'mailSenderName' => null,
    'mailMsg' => null
);