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

Php 将包含键和值的数组转换为字符串,php,arrays,string,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 c

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

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中搜索,找到了下面的问题,它有答案。我要正好相反的

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

假设您的数组被称为
$array

$result = "";
foreach($array as $key => $value){
    $result .= $key . "," . $value . "|";
}
就这么简单

编辑-感谢Nelson

之后,丢失了最后一个
|

$result = rtrim($result, "|");
使用
foreach()
函数遍历数组并将键/值串在一起

假设您的数组被称为
$array

$result = "";
foreach($array as $key => $value){
    $result .= $key . "," . $value . "|";
}
就这么简单

编辑-感谢Nelson

之后,丢失了最后一个
|

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

另一个解决方案:

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

array_walk($arr, 'test_alter',',');
echo implode('|',$arr);
试一试

另一个解决方案:

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

array_walk($arr, 'test_alter',',');
echo implode('|',$arr);
试试这个

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

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

使用内爆而不是分解=)使用内爆而不是分解=)不要忘记删除结尾处多余的
|
。这就是为什么我更喜欢GBD的
内爆
方法。不要忘记在最后删除额外的
|
。这就是为什么我更喜欢GBD的
内爆方法。