是否有可能爆炸这样的数组。
$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;
}
有没有更好的方法来解决这个问题?
答案 0 :(得分:7)
首先,您尝试 implode
字符串,而不是explode
。其次,不,没有语法快捷方式来表示操作将所有子阵列中的所有id
键连接在一起“。你可以这样简洁地做到这一点:
echo join(',', array_map(function ($i) { return $i['id']; }, $arr));
答案 1 :(得分:2)
从PHP5.5开始,您可以调用array_column()来隔离多维数组中的单列数据。
代码:(Demo)
$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
答案 2 :(得分:-1)
function myExplode ($data=array(),$row='id',$delimiter=','){
$result='';
foreach ($data as $item) $result.=($data[$row])?$delimiter.$data[$row]:'';
return $result;
}