我想使用php做一些像bellow:
$turl=array(trim($params->get('c2')));
$tname=array(trim($params->get('cn2')));
并希望每个$turl
显示每个$tname
。
我试过这样:
$result=array_combine($turl,$tname);
print_r($result);
但结果为:
Array ( [http://184.107.144.218:8282/,http://184.107.144.218:8082/] => ABC Radio,AHH Radio )
但我想这样:
Array ( [http://184.107.144.218:8282/=> ABC Radio,
http://184.107.144.218:8082/=> AHH Radio )
提前致谢
答案 0 :(得分:0)
也许你想使用类似的代码:
$turl = explode(',',trim($params->get('c2')));
$tname = explode(',',trim($params->get('cn2')));
$result=array_combine($turl,$tname);
print_r($result);
错误似乎是在$ turl和$ tname数组创建中,因为数组合并应该按预期工作
显然我会添加几个检查,例如,让两个数组的大小相同吗?
<强> 附录 强>
在comment中,如果使用参数'c2'和'cn2'调用,则会给我一个$params->get
返回的样本。
$params->get('c2')="hoicoimasti.com,google.com"
$params->get('cn2')="hoicoi,google".
我给你的示例代码做了所需要的,或者是我认为你想要获得的代码。具有不同结果的不同代码是:
$turl = explode(',',trim($params->get('c2')));
$tname = explode(',',trim($params->get('cn2')));
$result=array_map(function($x,$y){return $x.','.$y;},$turl,$tname);
print_r($result);
或者,如果您想获得单个字符串:
$result=join(',',array_map(function($x,$y){return $x.'=>'.$y;},$turl,$tname));
print_r($result);
您可以修改上一个示例之一的任何所需结果。
要将结果包含在一个选项中,您需要稍微改变array_map用户函数:
$result=join("\n",array_map(
function($x,$y){
return "<option>$x=>$y</option>";
},
$turl,
$tname
));
print_r($result);
PHP&lt; 5.3版本
将此函数声明放在全局范围内的某处
function formatOption($x,$y){
return "<option>$x=>$y</option>";
};
然后您的代码将变为:
$result=join("\n",array_map( 'formatOption', $turl, $tname));
print_r($result);
如果可能的话,我不会使用像 formatOption 这样的函数来混淆全局命名空间, 但是当匿名功能不可用时
<强>参考强>: