PHP foreach循环未返回全部键值对问题求助
问题原因及解决方案
问题根源
PHP关联数组的键具有唯一性,当重复使用同一个键(如RETAIL、BUSINESS)赋值时,后续赋值会直接覆盖之前的值,最终数组里每个键只会保留最后一次赋值的内容——这就是循环时仅得到3个值的核心原因。另外你的原始数组代码缺少元素间的逗号,这会触发语法错误,建议补全。
解决方案
结合你要将每条数据存入WordPress数据库的需求,推荐两种可行的数组结构:
方案1:同类型名称存入子数组
适合按类型归类管理数据,通过嵌套遍历即可插入每条记录:
$list = array( 'RETAIL' => array('SUPERMARKET', 'BAR', 'DEP. MARKET'), 'BUSINESS' => array('HOTEL', 'PUB'), 'OTHER' => array('GROCERY', 'BUTCHERY') // 剩余20+条目按此格式添加 ); foreach ($list as $type => $names) { // 遍历当前类型下的所有名称 foreach ($names as $name) { var_dump($type, $name); // WordPress数据库插入操作示例 // global $wpdb; // $wpdb->insert('你的自定义表名', array( // 'type' => $type, // 'name' => $name // )); } }
方案2:用索引数组存储独立条目
直接将每条类型-名称作为独立数组元素,更适配单条插入数据库的场景:
$list = array( array('type' => 'RETAIL', 'name' => 'SUPERMARKET'), array('type' => 'RETAIL', 'name' => 'BAR'), array('type' => 'RETAIL', 'name' => 'DEP. MARKET'), array('type' => 'BUSINESS', 'name' => 'HOTEL'), array('type' => 'BUSINESS', 'name' => 'PUB'), array('type' => 'OTHER', 'name' => 'GROCERY'), array('type' => 'OTHER', 'name' => 'BUTCHERY') // 剩余20+条目按此格式添加 ); foreach ($list as $item) { var_dump($item['type'], $item['name']); // WordPress数据库插入操作示例 // global $wpdb; // $wpdb->insert('你的自定义表名', array( // 'type' => $item['type'], // 'name' => $item['name'] // )); }
内容的提问来源于stack exchange,提问作者newbiedev
相关产品推荐
相关产品推荐

