PHP新手求助:如何仅显示嵌套数组的元素值?
解决PHP数组仅提取值的问题
嘿,作为PHP新手碰到这种数组取值的需求太正常啦!你现在的数组是个二维数组,每个子元素里只有linea这一个键,想要只提取对应的内容,不用print_r、var_dump这种带结构的调试函数对吧?给你俩简单好用的办法:
方法一:foreach循环遍历提取
这是最基础也最直观的方式,适合所有PHP版本:
// 先假设你的数组是这样的 $metroLines = [ ['linea' => '1 La Defense - Chateau de Vincennes'], ['linea' => '2 Porte Dauphine - Nation'], ['linea' => '3 Pont de Levallois Becon - Gallieni'], ['linea' => '3bis Gambetta - Porte des Lilas'], // 其他未写完的元素... ]; // 直接逐个输出每个linea的值 foreach ($metroLines as $line) { // PHP_EOL会自动适配系统的换行符,网页里也可以换成<br> echo $line['linea'] . PHP_EOL; } // 如果想把所有值存到一个新的一维数组里后续使用 $lineValues = []; foreach ($metroLines as $line) { $lineValues[] = $line['linea']; } // 比如用逗号分隔输出所有值 echo implode(', ', $lineValues);
方法二:用array_column快速提取(推荐)
如果你的PHP版本是5.5及以上,array_column这个函数简直是为这种场景量身定做的,一行代码就能把所有linea的值提取到一个新数组里:
$lineValues = array_column($metroLines, 'linea'); // 输出的话同样可以用implode或者循环 echo implode(PHP_EOL, $lineValues);
简单解释下:array_column的第一个参数是原数组,第二个参数是你要提取的键名,它会自动遍历整个二维数组,把对应键的值都收集起来,非常高效。
内容的提问来源于stack exchange,提问作者DavidZam
相关产品推荐
相关产品推荐

