正在从数组中创建唯一变量


Creating unique variables from array

我正在尝试制作一个多种形式的衣柜生成器,我有一个会话变量,用于用户在上一页中选择的门的数量(1-6门)。根据所选门的数量,我使用for循环显示默认门(即未选择门范围的类型)。我的问题是,我希望每个门都有一个唯一的变量,并将这些变量转换为会话变量(在应用程序中进一步使用),例如door1、door2和door3(如果选择了3个门)。这个想法是让这些门是唯一的,这样用户就可以点击并高亮显示门1的默认图像,并用门范围列表中的图像填充该区域/图像。这是一个相当新的,所以任何帮助都将非常感谢

代码:

<?php
$myDoors = array();
for ($x = 1; $x <= $selected_doors; $x++) {
    echo "Door: $x <br>";
    $myDoors["Door$x"] = "value set in loop";
      //if you want to loop through them all
    foreach ($myDoors as $key => $val) {
      echo "$key -> $val'n";
    }
    if ($selectRanges == 'Minimalist') { ?>
        <div>
            <img src="images/defaultMinimalist.png" alt="image">
        </div>
    <?php } elseif ($selectRanges == 'Classic') { ?>
        <div>
            <img src="images/defaultClassic.png" alt="image">
        </div>
    <?php } else { ?>
        <div>
            <img src="images/defaultEllipse.png" alt="image">
        </div>
    <?php }
} ?>

不要使用"唯一变量"。CCD_ 1是一个类似于任何其他阵列的阵列。你可以在数组中嵌入数组,所以…

$_SESSION['doors'][7]['style'] = 'Minimalist';
                  ^^^--- door ID

现在它只是一个常规数组,这意味着你不需要做像这样愚蠢的事情

$id = 7;
$_SESSION["door{$id}"]['style'] = ...

首先创建门阵列,然后将整个阵列推送到会话

$_SESSION['doors']=$myDoors;

现在你可以像这个一样访问会话中的门

$_SESSION['doors'][$doorNumber]