У меня есть вложенный массив (только один уровень глубоко) как это:
$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
(хранящий те строки во временном файле), и затем implode('|',...)
тот временный массив, но кажется, что я должен смочь сделать это более кратко* с PHP.
Заранее спасибо,
Удачи!
*"Более кратко" я имею в виду, не пишущий цикл (так, просто с помощью вызовов функции)
Я опаздываю в игру (по стандартам SO), но вы можете буквально "двойной" взрыв .
implode('|', array_map('implode', array_fill(0, count($a), ','), $a))
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');
Вот действительно грязный способ:
str_replace('],[', '|', trim(json_encode($a), '[]'));