从两个数组创建单个变量

时间:2018-09-18 17:29:08

标签: php

我有两个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,依此类推。

该怎么做?

3 个答案:

答案 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;
?>

演示: https://3v4l.org/VPNQh

结合使用extract()$arra$arrbextracts()-  将变量从数组导入到当前符号表中。

<?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";
?> 

演示: https://3v4l.org/VW55k

答案 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很有帮助。