2015-05-14 18 views
5

Mam tę tablicę i chcę przekonwertować go na ciąg.
Próbuję uzyskać ciąg znaków z funkcji php implode(), ale nie mogłem uzyskać pożądanego rezultatu.
Dane wyjściowe, które chcę, to: arraykey-arrayvalue, arraykey-arrayvalue, arraykey-arrayvalue i tak długo, jak kończy się koniec tablicy.Chcę tablicy klucz i wartość tablicy oddzielone przecinkami ciąg

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; 

Odpowiedz

5

Można po prostu zebrać najważniejsze wartości pary wewnątrz tablicy następnie implozji go:

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

dziękuję rk idealnie –

+0

@QaisarSatti na pewno, wybierz dowolną z tych odpowiedzi. – Ghost

2

Można również użyć array_map funkcję

$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

Można to zrobić za pomocą poniżej kod:

$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

Użyj funkcji array_map i ostatecznie ją implode. –

Powiązane problemy