0

我使用以下代码输出数组

$values = array();
foreach ($album as $a){
$values[] = $a['value'];
}

$string = implode(' or ', $values);

}

返回

 1 or 2 or 3

现在我怎么能把“”放在每个值周围,所以它看起来像

 "1" or "2" or "3"

谢谢你的帮助

4

3 回答 3

7
if (!empty($values)) {
    $string = '"' . implode('" or "', $values) . '"';
} else {
    $string = 'What do you think you\'re doing!?';
}
于 2012-06-26T20:30:27.053 回答
3

我认为这更容易:

$values = array();
foreach ($album as $a){
$values[] = '"'.$a['value'].'"'; //concat quotes on each side of the value
}

$string = implode(' or ', $values);

}
于 2012-06-26T20:32:39.230 回答
1

这是一个干净的解决方案,可以与空数组一起正常工作:

$string = implode(' or ', array_map(function($value) {
    return '"' . $value . '"';
}, $values));

演示(从php -a外壳复制):

php > $values = array('foo', 'bar', 'moo');
php >     $string = implode(' or ', array_map(function($value) {
php (         return '"' . $value . '"';
php (     }, $values));
php > echo $string;
"foo" or "bar" or "moo"
php >
于 2012-06-26T20:33:24.537 回答