我如何"双重"破坏嵌套数组?

Chr*_*son 5 php arrays implode

我有一个嵌套数组(只有一个深度),如下所示:

$a = array(
  array( 1, 2, 3 ),
  array( 2, 4, 6 ),
  array( 5, 10, 15 )
  );
Run Code Online (Sandbox Code Playgroud)

而且我想要一种很好的方式将它内爆()到这种形式:

1,2,3|2,4,6|5,10,15
Run Code Online (Sandbox Code Playgroud)

我可以在implode(',',...)每个数组中运行一个循环$a(将这些字符串存储在temp中),然后运行implode('|',...)该临时数组,但似乎我应该能够用PHP更简洁地执行此操作.

提前谢谢,
干杯!

*"更简洁"我的意思是,没有编写循环(所以,只使用函数调用)

sal*_*the 8

我在这里比赛迟到了(按照SO标准),但你可以从字面上看"双重"内爆.

implode('|', array_map('implode', array_fill(0, count($a), ','), $a))
Run Code Online (Sandbox Code Playgroud)


dev*_*ler 6

function implodeComas($arr)
{
    return implode(',',$arr);
}
$out = implode('|', array_map('implodeComas', $a));

echo $out;
Run Code Online (Sandbox Code Playgroud)

更好的一个:

function myImplode($ret,$current)
{
    if($ret)
        $ret .= '|';

    return $ret .= implode(',',$current);
}

echo array_reduce($a, 'myImplode');
Run Code Online (Sandbox Code Playgroud)


Tom*_*igh 5

这是一个非常脏的方式:

str_replace('],[', '|', trim(json_encode($a), '[]'));
Run Code Online (Sandbox Code Playgroud)