2012-12-07 45 views
0

我有一个包含键和值的数组。我想转换成一个字符串。将包含键和值的数组转换为字符串

array(
[business_type]=>'cafe' 
[business_type_plural] => 'cafes' 
[sample_tag]=>'couch' 
[business_name]=>'couch cafe' 
) 

预期输出:

business_type,cafe|business_type_plural,cafes|sample_tag,couch|business_name,couch cafe 

注:

我在StackOverflow上搜索,发现以下问题,它的答案。我想要完全相反。

converting string containing keys and values into array

+0

使用implode而不是explode =) –

回答

2

尝试

$data = array(); 
foreach($arr as $key=>$value) { 
    $data[] = $key.','.$value; 
} 
echo implode('|',$data); 

另一种解决方案:

function test_alter(&$item1, $key, $delimiter) 
{ 
    $item1 = "$key".$delimiter."$item1"; 
} 

array_walk($arr, 'test_alter',','); 
echo implode('|',$arr); 
+0

太棒了!它的工作..非常感谢你 – Prabu

1

使用foreach()功能要经过数组和字符串键/值加在一起......

假设你的数组称为$array

$result = ""; 
foreach($array as $key => $value){ 
    $result .= $key . "," . $value . "|"; 
} 

就这么简单。

编辑 - 感谢尼尔森

之后,失去了最后的|

$result = rtrim($result, "|"); 
+0

它需要修剪最后一个| – Nelson

+0

不要忘记在最后删除多余的'|'。这就是为什么我更喜欢GBD的“implode”方法。 – Barmar

0

试试这个

$pieces=array(); 
foreach(array('key1'=>'val1', 'key2'=>'val2', 'key3'=>'val3') as $k=>$v) 
{ 
    $pieces[]=$k.','.$v; 
} 
echo implode('|', $pieces); 
相关问题