2015-05-14 16 views
5

Ho questo array e voglio convertirlo in stringa.
Provo a ottenere la stringa dalla funzione php implode() ma non è stato possibile ottenere il risultato desiderato.
L'uscita che voglio è arraykey-arrayvalue, arraykey-arrayvalue, arraykey-arrayvalue e così via finché fine limite matrice.Voglio mettere la matrice e il valore dell'array stringa separata da virgola

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; 

risposta

5

Si può solo raccogliere i valori della coppia di chiavi all'interno di una matrice poi implodere esso:

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

grazie mille rk perfettamente –

+0

@QaisarSatti sicuro, seleziona quello che preferisci tra queste risposte – Ghost

2

È possibile anche utilizzare array_map funzione

$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

Questo può essere fatto usando il sotto codice:

$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

Usa la funzione array_map e infine implodalo. –

Problemi correlati