数组组合对变量不起作用


array combine not working on variable

我试过这个脚本,结果是真的

$a = array('Allow','Block');
$b = array('yes','no');
$c=array_combine($a,$b);
while (list($key, $value) = each($c)) {
echo "$key: $value 'n";
}

真实结果:

允许:是 阻止:否

但是当我在数组中使用变量时

$val1 = "'Allow','Block'";
$val2 = "'yes','no'";
$a = array($val1);
$b = array($val2);

结果是不同的:

"允许"、"阻止":"是"、"否"

问题是我如何才能产生第一个结果,因为我从动态变量中获得了文本

您不能像第二个示例中那样使用数组。您可能应该尝试这样的事情:

$val1 = "Allow,Block";
$val2 = "yes,no";
$a = explode(',',$val1);
$b = explode(',', $val2);

您还可以通过使用简单的 foreach 来获得真正的结果,例如:

$a = array('Allow','Block'); 
$b = array('yes','no');
$trueResult = array();
foreach($a as $key => $value){
   $trueResult[$value] = $b[$key];
}
foreach($trueResult as $key => $val){
  echo $key . "=". $val."<br>";
}

尝试以下代码。

$val1 = "Allow,Block";
$val2 = "yes,no";
$a = explode(',',$val1);
$b = explode(',', $val2);
$c=array_combine($a,$b);
while (list($key, $value) = each($c)) {
    echo "$key: $value 'n";
}
$val1 = "'Allow','Block'";
$val2 = "'yes','no'";
$val1 = str_replace("'", "", $val1);
$val2 = str_replace("'", "", $val2);
$c = array_combine(explode(',', $val1), explode(',', $val2));
while (list($key, $value) = each($c)) {
    echo "$key: $value 'n";
}