如何将多维数组中的列转换为逗号分隔的字符串?

Ste*_*yne 2 php csv implode multidimensional-array

是否有可能爆炸这样的数组.

$arr=array();
$arr[0]['id']='123';
$arr[0]['otherdatas']=
$arr[1]['id']='234';
$arr[1]['otherdatas']=
$arr[2]['id']='567';
echo "string: ".explode($arr[]['id'],',');
Run Code Online (Sandbox Code Playgroud)

并最终得到这个?

string: 123,234,567
Run Code Online (Sandbox Code Playgroud)

执行以上操作会导致:

致命错误:无法使用[]在第8行的/data/www/test.php中阅读

如果不做像......那样的事情我怎么能这样做呢?

function getIDs(){
    foreach($arr as $val){
        if($string){$string.=',';}
        $string.=$arr['id'];
    }
    return $string;
}
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来解决这个问题?

dec*_*eze 7

首先,你正在尝试implode使用字符串,而不是explode.其次,不,没有语法快捷方式来表达"将id所有子阵列中的所有键连接在一起"的操作.你可以这样简洁地做到这一点:

echo join(',', array_map(function ($i) { return $i['id']; }, $arr));
Run Code Online (Sandbox Code Playgroud)