连接字符串以在php中创建数组变量引用

时间:2015-03-23 11:25:05

标签: php arrays

我有这个数组

$addons_item_1 = array(
               "addon_1" => "65",
               "addon_2" => "55",
               "addon_3" => "60",
               "addon_4" => "80",
               "addon_5" => "75",
               "addon_6" => "75",
               "addon_7" => "30",
               "addon_8" => "20",
               "addon_9" => "25",
               "addon_10" => "25",
               "addon_11" => "25"
     );

$addons_item_2 = array(
                   "addon_1" => "65",
                   "addon_2" => "55",
                   "addon_3" => "60",
                   "addon_4" => "80",
                   "addon_5" => "75",
                   "addon_6" => "75",
                   "addon_7" => "30",
                   "addon_8" => "20",
                   "addon_9" => "25",
                   "addon_10" => "25",
                   "addon_11" => "25"
         );

现在从用户输入我得到以下变量:

$item = here value will be "item_1" or "item_2"  according to user input

现在,如果用户选择了item_1,我必须从第一个数组获取插件,或者如果用户选择了item_2,那么我将不得不从第二个数组中获取插件。 我可以简单地通过使用if-else语句来实现这一点,因为我有很多数组20-25所以它会很困难而且很混乱,所以我想这样做但是它不起作用:

$item = "item_1"; //now I have to fetch addons from first array

我的代码

 $addons = $addons_'.$item['addon_1']; //suppose I need only one addon

但是这段代码无效

2 个答案:

答案 0 :(得分:2)

您可以使用"变量"

$item = "item_2";
$ary = ${"addons_{$item}"}; // $ary is now $addons_item_2

但这很丑陋而且很混乱。将所有插件放入数组会好得多:

$addons = array(
    1 => array(
       "addon_1" => "65",
       "addon_2" => "55",
        etc
    ),
    2 => array(
       "addon_1" => "65",
       "addon_2" => "55",
        etc
     )
);

只需通过索引选择您想要的内容:

$item = 2;
$xyz = $addons[$item]['addon_2'];

答案 1 :(得分:-1)

试试这个

$addons = $addons_'.$item.'['addon_1'];