基本内爆 foreach

Posted

技术标签:

【中文标题】基本内爆 foreach【英文标题】:Basic implode foreach 【发布时间】:2012-04-15 07:32:33 【问题描述】:

我有以下代码,我想回显以逗号分隔的数组元素。代码输出 disered 列表,但没有逗号。我错过了什么?

<?php 
    $array    = get_field('casts');
    $elements = $array;

    foreach($array as $key => $value) 
        echo implode(', ', $value);
?>

编辑 1: 其中$elements 是嵌套数组。

编辑 2: 工作 sn-p:

<?php 
    $array = get_field('casts');
    $new_array = array();
    foreach($array as $sub_array) 
        foreach($sub_array as $value)  
            array_push($new_array, $value);
        
    
    echo implode(", ", $new_array);
?>

【问题讨论】:

如果$value 只包含1 个元素,implode() 将不会有任何效果。 你能发一个var_dump的$array吗? 【参考方案1】:

你为什么分配$elements = $array;,然后从不使用$elements

您也不需要循环 (foreach) 来内爆数组。

试试这个:

<?php
$array = get_field('casts');
$new_array = array();
foreach($array as $sub_array) 
    foreach($sub_array as $value) 
        // this array_push() function adds $value to the end of $new_array.
        array_push($new_array, $value);
    

echo implode(", ", $new_array);
?>

这是implode()上的文档

你可以试一试上面的代码here。

同样下次添加标签php,否则我们的代码不会得到颜色语法。

【讨论】:

对不起,我忘了提到 $elements 是嵌套数组。你的回答给了我 Array,Array,Array... @elbatron 你能做print_r($array); 并告诉我你(编辑的)问题的输出吗?了解$array 的实际值将帮助我更好地理解您的问题。如果它太长,那么就给我前几个元素。谢谢。 Array ([0] => Array ([actor] => Natalie Portman) [1] => Array ([actor] => Vincent Cassel) [2] => Array ([actor] => 米拉库尼斯 )) 大声抱歉,我忘记了;array_push(...) 的行中 @elbatron 删除 new 关键字。这应该可以解决问题。

以上是关于基本内爆 foreach的主要内容,如果未能解决你的问题,请参考以下文章

php 内爆(101)带引号

PHP内爆爆炸第一个和最后一个数组值

如何将内爆函数合并到此列表中

php 从钥匙阵列内爆

PHP 内爆阵列项目键

PHP 内爆钥匙