如何在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
相关产品推荐
相关产品推荐

