我有这个数组,我想把它转换成字符串
我尝试从php implode()
函数中获取字符串,但无法获得所需的结果
我想要的输出是 arraykey-arrayvalue
,arraykey-arrayvalue
,arraykey-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;
答案 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;
}
}