从数组创建唯一变量

时间:2016-01-08 15:37:02

标签: php arrays loops

我正在尝试制作一个多形式的衣柜制造商我有一个会话变量,用于用户在上一页(1-6门)中选择的门数。根据所选门的数量,我使用for循环显示默认门(即没有选择门类型)。我的问题是我希望每扇门都有一个唯一的变量并将它们变成会话变量(在应用程序中进一步使用),如门1,门2和门3,如果选择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 }
} ?>

2 个答案:

答案 0 :(得分:1)

不要使用&#34;独特变量&#34;。 $_SESSION是一个与任何其他数组一样的数组。您可以在数组中嵌入数组,所以......

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

现在它只是一个常规阵列,这意味着你不需要做愚蠢的事情,比如

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

答案 1 :(得分:0)

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

$ _ SESSION [&#39;门&#39;] = $ myDoors;

现在您可以像这样访问会话中的门

$_SESSION['doors'][$doorNumber]