我有两个php数组
$arra = array('one', 'two', 'five', 'seven');
$arrb = array('black', 'white', 'gold', 'silver');
我需要像这样创建变量:
foreach ($arra as $el) {
$el = $arrb[index of $el];
}
所以回显结果变量:
echo $one
应该为black
echo $two
应该是white
,依此类推。
该怎么做?
答案 0 :(得分:2)
尝试使用array_combine(),然后使用foreach()来创建动态变量。 array_combine()
-通过使用一个数组作为键并使用另一个数组作为其值来创建数组
<?php
$arra = array('one', 'two', 'five', 'seven');
$arrb = array('black', 'white', 'gold', 'silver');
$result = array_combine($arra, $arrb);
foreach($result as $key=>$value){
${$key} = $value;
}
echo $two;
?>
或结合使用extract()和$arra
和$arrb
。 extracts()
-
将变量从数组导入到当前符号表中。
<?php
$arra = array('one', 'two', 'five', 'seven');
$arrb = array('black', 'white', 'gold', 'silver');
$result = array_combine($arra, $arrb);
extract($result, EXTR_PREFIX_SAME,'');
echo "$one, $two, $five, $seven";
?>
答案 1 :(得分:1)
您实际上可以使用变量值设置变量的名称,您需要这样的内容:
for($x=0; $x < count($arra); $x++){
$$arra[$x] = $arrb[$x];
}
请注意双$$
。这不是错误。
答案 2 :(得分:0)
我想这就是你想要的:
$arra = array('one', 'two', 'five', 'seven');
$arrb = array('black', 'white', 'gold', 'silver');
foreach($arra as $key=>$ela) {
$elb = $arrb[$key];
${$ela} = $elb;
}
echo $one;
echo $two;
echo $five;
echo $seven;
对于使用字符串作为变量,我发现this link很有帮助。