我有一个嵌套数组(只有一层深度),如下所示:
$a = array(
array( 1, 2, 3 ),
array( 2, 4, 6 ),
array( 5, 10, 15 )
);
而且我想要一种很好的方法将它破坏()到这种形式:
1,2,3|2,4,6|5,10,15
我可以在implode(',',...)
中运行$a
每个数组的循环(将这些字符串存储在temp中),然后implode('|',...)
那个临时数组,但看起来我应该能够用PHP更简洁地做到这一点。
提前致谢,
干杯!
*“更简洁”我的意思是,不写循环(所以,只使用函数调用)
答案 0 :(得分:8)
我在这里比赛的时间已经很晚了(按照SO标准),但你可以“双重”内爆。
implode('|', array_map('implode', array_fill(0, count($a), ','), $a))
答案 1 :(得分:6)
<击> 撞击>
<击>function implodeComas($arr)
{
return implode(',',$arr);
}
$out = implode('|', array_map('implodeComas', $a));
echo $out;
击> <击> 撞击> 更好的一个:
function myImplode($ret,$current)
{
if($ret)
$ret .= '|';
return $ret .= implode(',',$current);
}
echo array_reduce($a, 'myImplode');
答案 2 :(得分:5)
这是一种非常肮脏的方式:
str_replace('],[', '|', trim(json_encode($a), '[]'));