Nasıl "ikili" olabilir

3 Cevap php

Ben böyle (tek bir düzey derin) iç içe geçmiş bir dizi var:

$a = array(
  array( 1, 2, 3 ),
  array( 2, 4, 6 ),
  array( 5, 10, 15 )
  );

Ve ben bu formu) (bunu çökmek için güzel bir yol istiyorum:

1,2,3|2,4,6|5,10,15

Ben, $a (bir temp bu dizeleri depolamak), ve ardından implode('|',...) geçici bir dizi olmasıyla implode(',',...), her dizi için bir döngü çalıştırmak olabilir ama ben gibi görünüyor daha özlü * PHP ile bunu yapmak mümkün olmalıdır.

Thanks in advance,
Cheers!

* "Daha özlü" Ben bir döngü yazmadan, ortalama (yani sadece fonksiyon çağrılarını kullanarak)

3 Cevap

Ben (SO standartlarına göre) burada oyuna geç kaldım ama kelimenin tam anlamıyla "dual" implode.

implode('|', array_map('implode', array_fill(0, count($a), ','), $a))

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

echo $out;

Better one:

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

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

echo array_reduce($a, 'myImplode');

Burada gerçekten kirli bir yoldur:

str_replace('],[', '|', trim(json_encode($a), '[]'));