如何在php中拆分变量中的数组值?

如何在php中拆分变量中的数组值?,php,ajax,Php,Ajax,我使用serialize()在ajax调用中获取表单值。现在我得到一个数组值。我希望数组存储在变量中 以下是我得到的: Array ( [datewise] => 05/22/2015 [mealplan] => AP ) 我想要这样: $date=05/22/2015; $meal=AP; 如何从阵列中这样存储 $var = Array ( [datewise] => 05/22/2015 [mealplan] => AP ); extract($var);

我使用serialize()在ajax调用中获取表单值。现在我得到一个数组值。我希望数组存储在变量中

以下是我得到的:

Array ( [datewise] => 05/22/2015 [mealplan] => AP ) 
我想要这样:

$date=05/22/2015;
$meal=AP;
如何从阵列中这样存储

$var = Array ( [datewise] => 05/22/2015 [mealplan] => AP );

extract($var);
现在您可以使用
$datewise
$mealplan
变量

$expected_keys = array('datewise', 'mealplan');

foreach ($expected_keys as $key) {
    ${$key} = $your_array[$key];
}

但即便如此,我仍然看不出有任何理由这么做。如果数据已经在数组中,并且希望经过验证,那么为什么不按原样使用数组呢?

严肃地说,这是非常危险的。您允许在脚本中使用artibrary注入变量

为什么不直接使用数组呢

如果必须的话,也可以重新分配

$datewise=$array['datewise']

有明确的任务是一件好事!这叫做可读代码

$array = [
    'datewise' => '05/22/2015',
    'mealplan' => 'AP',
];

list($date, $meal) = array_values($array);
调试:

var_dump($date);
var_dump($meal);
屈服

string(10) "05/22/2015"
string(2) "AP"

$date=$array['datewise']$膳食=$array['mealplan']@Dagon那只是变量名,再加上更少的输入:像pi一样的输入我每次按键都会得到报酬!HJRFTYBDFTY DVRJVFGymFvrndHfByJgmubgKgmhkugnKmukiand extract是危险的-ajax源可能不安全更好地希望传入的ajax数据是“安全的”,但即使在您的情况下“$date=$array['datewise'];”也可能是一些恶意SQL注入;-)如果他将其存储在数据库中或对其进行查询…我不建议使用extract,即使建议不使用。它仅用于从数据库中选择数据…因此使用此函数是否安全…是的,您可以使用,列名将成为单独的变量,与extract一样危险。很公平,虽然这个问题并没有提到消毒输入,所以有点脱离上下文。我将编辑一个“更安全”的方法。