输出数组
问题描述:
我有一个PHP while循环,如下所示:输出数组
$tmp = array();
//loop for category dropdown menu
while($r = $stmt->fetch())
{
$start_time = $r['consultation_start'];
$end_time = $r['consultation_end'];
$holiday = htmlspecialchars($r['consultation_holidays']);
$tmp[] =sprintf(" $holiday ,");
}
//concatenate loop strings
foreach($tmp as $output)
{
$holidays = implode('', $tmp);
$consultholidays = substr_replace($holidays ,"",-1);
}
echo $consultholidays;
$stmt->closeCursor();
}
我需要在格式输出:
[Sunday], [Wednesday]
我试着使用:
$tmp[] =sprintf(" [$holiday] ,");
但它给出的输出为:
[Sunday,Wednesday]
我怎样才能输出格式为:
[Sunday], [Wednesday]
对不起,我是新来的PHP和learning..so请原谅的错误。
答
尝试以下方法:
$holiday = "Sunday,Wednesday";
$holidays = explode(",",$holiday);
$tmp[] = '['.implode('], [', $holidays).']';
var_dump($tmp);
或者这样:
function surround($item)
{
return "[" . ($item) . "],";
}
$holiday = "Sunday,Wednesday";
$holidays = explode(",",$holiday);
$str = implode(array_map('surround', $holidays));
$tmp[] = rtrim($str,',');
var_dump($tmp);
第一只使用内爆到阵列粘合在一起,并通过], [
将它们分离,并通过[
整个字符串周围和]
。
虽然第二个使用array_map
围绕单个项目,然后使用implode
将它们变成字符串。
'$ holiday'包含了什么。发布它的价值。 – mega6382
@ mega6382 $节假日包含星期日,星期三 – Pamela
这['星期天,星期三]'不定义它是字符串还是数组所以具体。 – User97798