我有一个日历。用户选择他/她想要阻止的日期。在数据库中,它们将保存为具有假日名称的数组:
a:3:{i:0;s:6:"easter";i:1;s:12:"thanksgiving";i:2;s:9:"christmas";}
在文件中,我有每个日期的字符串:
$thanksgiving = "
[11, 27, 2014],
[11, 26, 2015],
[11, 24, 2016],
[11, 23, 2017],
[11, 22, 2018],
[11, 28, 2019],
[11, 26, 2020],
[11, 25, 2021],
[11, 24, 2022],
[11, 23, 2023]
";
$christmas = "
[12, 25, 2014],
[12, 25, 2015],
[12, 25, 2016],
[12, 25, 2017],
[12, 25, 2018],
[12, 25, 2019],
[12, 25, 2020],
[12, 25, 2021],
[12, 25, 2022],
[12, 25, 2023]
";
$fourthofjuly = "
[07, 04, 2015],
[07, 04, 2016],
[07, 04, 2017],
[07, 04, 2018],
[07, 04, 2019],
[07, 04, 2020],
[07, 04, 2021],
[07, 04, 2022],
[07, 04, 2023]
";
等...
$blocked_holidays is the array retrieved from the DB
When I try to echo it:
$blocked_string = implode(", $", $blocked_holidays);
$blocked_string = "[ $" . $blocked_string . " ]";
echo $blocked_string;
I get: [ $newyears, $thanksgiving, $christmas ]
如何让它回显字符串的值?
如果我将其更改为:
$$thanksgiving = "
[11, 27, 2014],
[11, 26, 2015],
[11, 24, 2016],
[11, 23, 2017],
[11, 22, 2018],
[11, 28, 2019],
[11, 26, 2020],
[11, 25, 2021],
[11, 24, 2022],
[11, 23, 2023]
";
$$christmas = "
[12, 25, 2014],
[12, 25, 2015],
[12, 25, 2016],
[12, 25, 2017],
[12, 25, 2018],
[12, 25, 2019],
[12, 25, 2020],
[12, 25, 2021],
[12, 25, 2022],
[12, 25, 2023]
";
$$fourthofjuly = "
[07, 04, 2015],
[07, 04, 2016],
[07, 04, 2017],
[07, 04, 2018],
[07, 04, 2019],
[07, 04, 2020],
[07, 04, 2021],
[07, 04, 2022],
[07, 04, 2023]
";
和
$blocked_string = implode(", $", $$blocked_holidays);
echo $$blocked_string;
它与日期相呼应,但仅来自最新变量,而不是所有变量。
答案 0 :(得分:0)
也许这可以帮到你:
$blocked_holidays=array("a", "b", "c");
$a=1; $b=2; $c=3; //testing values
<击> 撞击>
<击> $blocked_string=array();
foreach ($blocked_holidays as $value) {
array_push($blocked_string, ${$value});
}
echo '['.implode($blocked_string, ',').']';
击> <击> 撞击>
修改强>
我想我得到了你想做的事情:
$blocked_string=implode(", $", $blocked_holidays);
$blocked_string=eval('echo "[$'.$blocked_string.']";');
echo $blocked_string;
//or simply
$blocked_string=eval('echo "[$'.implode(", $", $blocked_holidays).']";');