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

时间:2012-12-07 16:49:21

标签: php arrays string

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

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

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

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

假设您的数组名为$array

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

就这么简单。

编辑 - 谢谢 Nelson

之后,丢失了最后一个|

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

答案 2 :(得分:0)

试试这个

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