2015-05-14 17 views
5

Bu dizilim var ve dizgeye dönüştürmek istiyorum.
php implode() işlevinden dize almaya çalışıyorum ancak istenen sonucu alamadım.
İstediğim çıktı, dizi sınırlaması sona erdikten sonra arraykey-arrayvalue, arraykey-arrayvalue, arraykey-arrayvalue vb.Anahtar ve dizi değeri dizili virgülle ayırmak istiyorum

Array ([1] => 1 [2] => 1 [3] => 1) 
$data = implode(",", $pData); 
//it is creating string like 
$data=1,1,1; 
// but i want like below 
$string=1-1,2-1,3-1; 

cevap

5

Sadece o zaman çöker dizisi içindeki anahtar çifti değerlerini toplayabilir:

foreach($array as $k => $v) { $data[] = "$k-$v"; } 
echo implode(',', $data); 
+0

teşekkürler rk perfect –

+0

@QaisarSatti emin, sadece bu cevaplardan hangisini tercih ederseniz seçin – Ghost

2

Ayrıca aşağıda kullanarak

$arar = Array ('1' => 1 ,'2' => 1, '3' => 1); 
$result = implode(',',array_map('out',array_keys($arar),$arar)); 
function out($a,$b){ 
    return $a.'-'.$b; 
} 
echo $result;//1-1,2-1,3-1; 
1

gibi bu yapılabilir array_map işlevini kullanabilirsiniz kodu:

$temp = ''; 
$val = ''; 
$i=0; 
foreach ($array as $key => $value) 
{ 
    $temp = $key.'-'.$val; 
    if($i == 0) 
    { 
     $val = $temp; // so that comma does not append before the string starts 
     $i = 1; 
    } 
    else 
    { 
     $val = $val.','.$temp; 
    } 
} 
+0

Lütfen array_map işlevini kullanın ve son olarak onu parçalayın. –

İlgili konular