You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP中将while循环结果存入三维数组?

解决while循环结果写入三维数组的问题

我明白你现在的困扰啦——想把while循环生成的每一组消息数据塞进三维数组的messages字段里,但之前的写法没把循环里的数组元素真正添加进去对吧?

原代码的问题所在

你原来的代码里,只是在while循环内部创建了单个消息的数组,但没有把这个数组追加到$messages['messages']这个目标数组中。循环结束后,messages字段还是初始的空结构,自然无法得到你想要的结果。

修正后的解决方案

我们需要先初始化好基础的数组结构,然后在循环里把每个生成的消息子数组添加到$messages['messages']中,具体代码如下:

// 先初始化完整的数组结构,messages字段先留空待填充
$messages = array(
    'sender' => "akhil",
    'messages' => array()
);

// 假设$i初始值为0,$data是存储号码的数组,先获取数组长度
$i = 0;
$dataLength = count($data);

while ($i < $dataLength) {
    // 将循环生成的消息子数组追加到messages数组末尾
    $messages['messages'][] = array(
        'number' => $data[$i],
        'text' => rawurlencode('Hello,.........')
    );
    $i++;
}

代码细节说明

  • 先初始化$messages数组,明确sender字段和空的messages数组,为后续填充做准备。
  • 使用$messages['messages'][] = ...的语法是PHP中向数组追加元素最简洁的方式,每次循环都会把新的消息数组加入到目标数组里。
  • 如果你习惯用函数操作,也可以替换成array_push($messages['messages'], ...),效果完全一致。

最终效果验证

循环结束后,$messages的结构就会和你期望的完全一致:

$messages = array(
    'sender' => "akhil",
    'messages' => array(
        array(
            'number' => 918xxxxxx,
            'text' => rawurlencode('Hello,------')
        ),
        array(
            'number' => 9196xxxxxx,
            'text' => rawurlencode('Hello,----')
        ),
        array(
            'number' => 919xxxxx,
            'text' => rawurlencode('Hello,----')
        )
    )
);

内容的提问来源于stack exchange,提问作者Akhil B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:45:26