我无法让这段代码正常工作。我需要根据发布的变量得到一个数组。我想这很明显,但我找不到洗脱液。
$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)
谢谢!
答案 0 :(得分:2)
我会将您的选择分组到单个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( ... );
...
);
干杯
答案 1 :(得分:1)
在这里找出你想要的东西有点困难,但我认为它是这样的:
$order_display = $choice1[$_POST['choice']];
答案 2 :(得分:0)
foreach ($choice as $key => $val)
foreach ($val as $nval)
echo $key . ' : ' . $nval . '<br />';
答案 3 :(得分:0)
$varname = 'choice' . $_POST['choice'];
$order_display = $$varname['order'];