0

私の目標:次のような動的変数を作成します

$counterMon00 = 0;
$counterMon01 = 0;
$counterThu23 = 0;

今までの私のコード:

$array_days = ["Mon","Tue","Wed","Thu","Fri"];
for ($i = 0; $i < sizeof($array_days); $i++)
{
   $weekDay = (String) $array_days[$i];
   for($ii = 7; $ii < 10; $ii++)
   {
   "counter".${$weekDay}.${$ii} = 0;
   }
}

この行を手伝ってくれませんか

"counter".${$weekDay}.${$ii} = 0;

私は別の解決策を試しましたが、何もうまくいきませんでした...

4

7 に答える 7

1

変数変数を使用してみてください:

$varName = "counter".${$weekDay}.${$ii};
$$varName = 0;//Note the $$

また、上記よりも配列の構築を検討することをお勧めします (少なくとも私の意見では)。平日をカウントにマッピングする配列のようなもの、つまり

$arr["Mon"][3] = 0;
于 2013-07-31T09:06:33.543 に答える
1
${"counter".$weekDay.$ii} = 0;
于 2013-07-31T09:03:15.630 に答える
1
$array_days = array("Mon","Tue","Wed","Thu","Fri");
for ($i = 0; $i < count($array_days); $i++)
{
   $weekDay = (String) $array_days[$i];
   for($ii = 7; $ii < 10; $ii++)
   {
   $var="counter".$weekDay.$ii;
   $$var;
   }

}
于 2013-07-31T09:10:49.140 に答える
0

あなたは配列が欲しい!それがまさに彼らの目的です。可変変数は、すべてのケースの 99% で悪い考えです。

$counter = [];
$days    = ["Mon","Tue","Wed","Thu","Fri"];

foreach ($days as $day) {
    foreach (range(7, 9) as $i) {
        $counter[$day][$i] = 0;
    }
}
于 2013-07-31T09:08:19.987 に答える
0

配列宣言も間違えた場合は以下をお試しください

<?php
$array_days = array("Mon","Tue","Wed","Thu","Fri");
for ($i = 0; $i < sizeof($array_days); $i++)
{
  $weekDay = (String) $array_days[$i];
   for($ii = 7; $ii < 10; $ii++)
   {
    $var = "counter".$weekDay.(String)$ii;
    $$var = 0;
   }
}
?>
于 2013-07-31T09:11:54.040 に答える
0

これを試して

$array_days = ["Mon","Tue","Wed","Thu","Fri"];
for ($i = 0; $i < sizeof($array_days); $i++)
{

//   $weekDay = $array_days[$i];
    for($ii = 0; $ii < 5; $ii++)
    {
    //echo "counter".${$weekDay}.${$ii} = 0;
        $a = "counter".$array_days[$i].$i.$ii;
        $$a = 0;
    }
}
于 2013-07-31T09:14:38.987 に答える