如何将PHP foreach循环内的取值提取到循环外并获取全部遍历值?
问题原因
你代码的问题在于两个点:
- 循环内每次直接用
=给$pimpoyo赋值,新值会直接覆盖旧值,所以删除break后只会保留最后一次遍历的结果 - 你初始化
$pimpoyo为数组类型,但实际赋值时传入的是字符串,类型不匹配也无法实现多值存储的需求
解决方案
方案1:字符串拼接(适合直接输出带<br>分隔的内容)
直接将$pimpoyo初始化为空字符串,循环内使用拼接符号.=追加内容:
<?php $colors = array("red", "green", "blue", "yellow"); $pimpoyo = ''; foreach ($colors as $value) { $pimpoyo .= "$value <br>"; } echo $pimpoyo; ?>
运行输出结果:
red <br>green <br>blue <br>yellow <br>
页面渲染后会逐行显示所有颜色。
方案2:数组存储(适合后续需要对每个取值做单独处理的场景)
保持$pimpoyo为数组类型,循环内用[]语法将每个值追加到数组末尾:
<?php $colors = array("red", "green", "blue", "yellow"); $pimpoyo = []; foreach ($colors as $value) { $pimpoyo[] = $value; } // 输出时可以按需处理,比如用<br>拼接输出 echo implode('<br>', $pimpoyo); // 也可以单独取某个位置的值 echo $pimpoyo[1]; // 输出green ?>
内容的提问来源于stack exchange,提问作者mario
相关产品推荐
相关产品推荐

