2

是否可以像这样爆炸数组。

$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'],',');

并以这个结束?

string: 123,234,567

执行上述结果:

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

如果不做类似的事情,我怎么能做到这一点?

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

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

4

3 回答 3

7

首先,您尝试的implode是字符串,而不是explode. 其次,不,没有表达“将id所有子数组中的所有键连接在一起”操作的语法快捷方式。你可以像这样非常简洁地做到这一点:

echo join(',', array_map(function ($i) { return $i['id']; }, $arr));
于 2012-05-01T06:08:08.517 回答
2

从 PHP5.5 起,您可以调用array_column()来隔离多维数组中的单列数据。

代码:(演示

$arr=array();
$arr[0]['id']='123';
$arr[0]['otherdatas']='';
$arr[1]['id']='234';
$arr[1]['otherdatas']='';
$arr[2]['id']='567';

echo implode(',',array_column($arr,'id'));

输出:

123,234,567
于 2018-01-05T00:40:57.920 回答
-1

不,这是不可能的。

function myExplode ($data=array(),$row='id',$delimiter=','){
  $result='';
  foreach ($data as $item) $result.=($data[$row])?$delimiter.$data[$row]:'';
  return $result;
}
于 2012-05-01T06:15:10.697 回答