php - 如何解决在php的嵌套foreach循环中重置变量
问题描述
我有已转换为数组的字符串,但想将它们显示在列表中。如何重置循环以避免重复?
我尝试将变量设置为空白,这通常适用于单个 foreach 语句
$SEAT = "1A,4A";
$NAME = "John Doe, Jane Doe";
$PHONE_NUMBER = "123456856,1235668";
$SEAT_USSD_STRING_VALUE = explode(",", $SEAT);
$NAME_USSD_STRING_VALUE = explode(",", $NAME);
$PHONE_USSD_STRING_VALUE = explode(",", $PHONE_NUMBER);
$seat_value = "";
foreach ($SEAT_USSD_STRING_VALUE as $seat_key => $seat_value) {
$name_value = "";
foreach ($NAME_USSD_STRING_VALUE as $name_key => $name_value) {
$phone_number_value = "";
foreach ($PHONE_USSD_STRING_VALUE as $phone_number_key => $phone_number_value) {
echo "$seat_value: $name_value - $phone_number_value<br/>";
}
}
}
我期待得到
1A: John Doe - 12345678
4A: Jane Doe - 87654321
但我得到了这个
1A: John Doe - 12345678
1A: John Doe - 87654321
1A: Jane Doe - 12345678
1A: Jane Doe - 87654321
4A: John Doe - 12345678
4A: John Doe - 87654321
4A: Jane Doe - 12345678
4A: Jane Doe - 87654321
解决方案
您可以这样做,假设您的 3 个数组中的元素数量始终相同:
<?php
$SEAT = "1A,4A";
$NAME = "John Doe, Jane Doe";
$PHONE_NUMBER = "123456856,1235668";
$SEAT_USSD_STRING_VALUE = explode(",", $SEAT);
$NAME_USSD_STRING_VALUE = explode(",", $NAME);
$PHONE_USSD_STRING_VALUE = explode(",", $PHONE_NUMBER);
$seat_value = "";
foreach ($SEAT_USSD_STRING_VALUE as $seat_index => $seat_value) {
$name_value = $NAME_USSD_STRING_VALUE[$seat_index];
$phone_value = $PHONE_USSD_STRING_VALUE[$seat_index];
echo "$seat_value: $name_value - $phone_value<br/>";
}
在这种情况下,您始终可以引用其他数组中位于同一索引上的项目。
这将如下工作:我们在座位数组循环中的索引 0 处,然后名称将是名称数组的 0 索引元素,而电话将是电话数组的 0 索引元素。
推荐阅读
- python - 绘制年月日与体重
- r - 匹配栅格在 foreach 循环中不起作用
- r - 在R中创建不等长列表的数据框
- python - 使用递归函数在字符串之间插入字符 - python
- node.js - 具有 createdAt 和 updatedAt 时间戳的超级账本结构链码 getState()
- angular - 如何在 Angular 应用程序中为单个路由设置 404 状态码?
- python - 多进程 - 为什么 multiprocessing.Pipe python2 比 python3 快
- telegram - 当用户点击它时,inLineKeyboardButton 在哪里响应
- django - 对自定义 Django 用户模型的任何更改都在 Admin 中完全被忽略
- kivy - 在将我的 kivymd 文件转换为 apk 时,我遇到了某种错误,我无法理解那是什么