我想数组键和数组值逗号分隔字符串

时间:2015-05-14 07:13:44

标签: php arrays

我有这个数组,我想把它转换成字符串 我尝试从php implode()函数中获取字符串,但无法获得所需的结果 我想要的输出是 arraykey-arrayvaluearraykey-arrayvaluearraykey-arrayvalue 等等,只要数组限制结束。

 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; 

3 个答案:

答案 0 :(得分:6)

你可以只收集一个数组中的密钥对值,然后将其内爆:

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

答案 1 :(得分:2)

您也可以将array_map功能用作

$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; 

答案 2 :(得分:1)

这可以使用以下代码完成:

$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;
    }
}