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 中搜索并找到了以下问题并且它有答案。我想要完全相反的一个。

将包含键和值的字符串转换为数组

4

3 回答 3

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);
于 2012-12-07T16:51:56.743 回答
1

使用该foreach()函数遍历数组并将键/值串在一起......

假设您的数组被调用$array

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

就这么简单。

编辑 - 谢谢尼尔森

在那之后,失去了最后|

$result = rtrim($result, "|");
于 2012-12-07T16:51:26.480 回答
0

试试这个

$pieces=array();
foreach(array('key1'=>'val1', 'key2'=>'val2', 'key3'=>'val3') as $k=>$v)
{
    $pieces[]=$k.','.$v;
}
echo implode('|', $pieces);
于 2012-12-07T16:53:24.460 回答