Php double$(变量的变量)不';t将变量值打印为变量

Php double$(变量的变量)不';t将变量值打印为变量,php,Php,我有以下代码: <?php $dates = array('2014-12-01','2014-12-02','2014-12-08','2014-12-09','2014-12-10','2014-12-11'); $values = array(5,3,7,8,9,2); foreach ($dates as $date){ //Array of the regarded days names is generated $days[] = strtolower(date('l'

我有以下代码:

<?php
$dates = array('2014-12-01','2014-12-02','2014-12-08','2014-12-09','2014-12-10','2014-12-11');
$values = array(5,3,7,8,9,2);

foreach ($dates as $date){
 //Array of the regarded days names is generated
  $days[] = strtolower(date('l', strtotime($date)))."\n";
}

for ($i = 0; $i < count($days); $i++){
 $day = $days[$i];    
 $$day = $values[$i];
}    
echo $monday;
?>

echo$monday
不打印任何值,我希望它打印8,因为在最后一个循环中,我有一个名为
$day
的变量,该值的最后一个设置应该是8。那么为什么设置不正确呢

这是一个演示:

这是您的问题:

$days[] = strtolower(date('l', strtotime($date)))."\n";
                                                 ^^^^^ here
您正在向值的末尾添加一个新行字符,因此您的值将不是
monday
,而是
monday\n

只需删除以下内容:

$days[] = strtolower(date('l', strtotime($date)));

似曾相识??我不会问这个问题本身。我只是问其他的实现。@Fred ii-我想有点无聊;-)哈哈哈!!你了解我;)总是完美主义者