簡體   English   中英

數組名稱為php的POST變量

[英]POST variable in array's name php

我無法讓這段代碼工作。 我需要根據發布的變量得到一個數組。 我想這很明顯,但我找不到洗脫劑。

$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)

謝謝!

我會將您的選擇分組到單個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( ... );
    ...
);

干杯

在這里找出你想要的東西有點困難,但我認為是這樣的:

$order_display = $choice1[$_POST['choice']];
foreach ($choice as $key => $val)
foreach ($val as $nval)
  echo $key . ' : ' . $nval . '<br />';
$varname = 'choice' . $_POST['choice'];
$order_display = $$varname['order'];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM