【问题标题】:POST variable in array's name php数组名称 php 中的 POST 变量
【发布时间】:2012-06-13 17:22:29
【问题描述】:

我无法让这段代码正常工作。我需要根据发布的变量获取一个数组。我想这很明显,但我找不到解决方案。

$choice1 =
    array (
        'order' => array (1,2,3,4,5),
            'settings' => (1,0,1)
    );
$choice2 =
    array (
        'order' => array (1,5,3,2,4),
            'settings' => (0,0,0)
    );
if(isset($_POST['choice'])) {
    $template_to_get = $_POST['choice'];
    $order_display = $template_to_get['order'];          // Here is the problem
    echo json_encode(array('order' => $order_display));
}

也试过了:

$order_display = $$template_to_get['order'];
$order_display = "$".$template_to_get['order'];
...

如果我写了这行,它可以工作,但我不知道它是选择 1 还是选择 2 将被发布:

$order_display = $choice1['order'];

我想得到 (1,2,3,4,5) 数组作为输出。 (我简化了,但我有大约 20 个选项X)

谢谢!

【问题讨论】:

    标签: php arrays variables post


    【解决方案1】:

    我会将您的选择分组到一个单一的 num 索引数组中,而不是添加变量变量的味道:

    $choices = array(
        1 => array(
            'order' => array (1,5,3,2,4),
            'settings' => (0,0,0),
        ),
        2 => array(
            'order' => array (1,2,3,4,5),
            'settings' => (1,0,1)
        ),
    );
    
    if(isset($_POST['choice'])) {
        $template_choice = $_POST['choice'];
        echo json_encode(array('order' => $choices[ $template_choice ]['order'] ));
    }
    

    或者非常接近的东西。

    编辑:请注意,如果您在 $_POST['choice'] 中发布字符串,同样可以正常工作,例如 'template_1' 可以发布并匹配到:

    $choices = array(
        'template_1' => array( ... );
        ...
    );
    

    干杯

    【讨论】:

    • 完美!正是我需要的!非常感谢!
    【解决方案2】:

    在这里想出你想要的东西有点困难,但我认为是这样的:

    $order_display = $choice1[$_POST['choice']];
    

    【讨论】:

    • 这不是我想做的,我已经编辑了我的问题以使其更清楚
    【解决方案3】:
    foreach ($choice as $key => $val)
    foreach ($val as $nval)
      echo $key . ' : ' . $nval . '<br />';
    

    【讨论】:

      【解决方案4】:
      $varname = 'choice' . $_POST['choice'];
      $order_display = $$varname['order'];
      

      【讨论】:

      • 我在第三行得到:Notice: Undefined variable: c in...。 “c”是我发布的第一个字符
      猜你喜欢
      • 1970-01-01
      • 2013-05-16
      • 1970-01-01
      • 2015-12-29
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 2011-01-28
      • 1970-01-01
      相关资源
      最近更新 更多