数组组合不适用于变量

array combine not working on variable

提问人:Denis 提问时间:1/31/2016 更新时间:1/31/2016 访问量:67

问:

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

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

结果是不同的:

'Allow','Block': '是','否'

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

PHP 数组

评论

2赞 ameenulla0007 1/31/2016
在那里使用变量,在那里考虑单个维度的值。您需要使用用逗号分隔的不同值。

答:

1赞 user5570620 1/31/2016 #1

请尝试以下代码。

$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";
}

评论

0赞 Denis 1/31/2016
对不起,伙计,好久不见了,这个论坛很有帮助。我无法解决我在 Google 搜索中的问题。因为我只是傻乎乎的剧本小子......谢谢你们拯救了我的一天:D这些答案是有效的!
2赞 Radek Adamiec 1/31/2016 #2

您不能像第二个示例中那样使用数组。您可能应该尝试如下操作:

$val1 = "Allow,Block";
$val2 = "yes,no";
$a = explode(',',$val1);
$b = explode(',', $val2);
1赞 devpro 1/31/2016 #3

您还可以使用简单的 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>";
}
1赞 Endijs 1/31/2016 #4
$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";
}