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

时间:2013-09-02 16:55:38

标签: php arrays updating

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

我正在玩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错误信息正在升级 - (有时这更糟糕了!)而且我几乎撞到了一堵砖墙。

感谢阅读&你的时间,

杰米

1 个答案:

答案 0 :(得分:1)

您是否有理由使用多维数组而不仅仅是关联数?您不会迭代任何索引,因为聚合数组格式中不存在任何索引。正确的格式应为:

多维度:

$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
);