如何将数组值变为变量?
我有两个数组。像:如何将数组值变为变量?
Bear, prince, dog, Portugal, Bear, Clown, prince, ...
,第二个:
45, 67, 34, 89, ...
我想将字符串键的第一阵列中到变量并将其设置等于 到数第二阵列中。
可能吗?
extract(array_combine($arrayKeys, $arrayValues));
http://php.net/array_combine
http://php.net/manual/en/function.extract.php
我建议你保留值的数组,虽然,这是很少的变量变量淹没你的命名空间是一个好主意。
使用try array_combine: -
<?php
$a = array('green', 'red', 'yellow');
$b = array('avocado', 'apple', 'banana');
$c = array_combine($a, $b);
print_r($c);
?>
输出: -
Array (
[green] => avocado
[red] => apple
[yellow] => banana
)
遍历数组并为每个键值创建变量: -
foreach($c as $key => $value) {
$$key = $value;
}
现在,你可以打印变量,如: -
echo $green." , ".$red." , ".$yellow;
希望这会有所帮助。谢谢。
我认为使用提取功能是更好的方法。 http://php.net/manual/en/function.extract.php但是,如果以防万一,你不希望所有的数组值作为变量(只想限制变量),那么你可以使用我的答案。 – 2011-04-26 06:31:29
对于限制变量,我会'提取(array_intersect_key($ c,array_flip(array('green','red'))));'。 ;) – deceze 2011-04-26 06:34:50
比过去你不得不使用eval来解决这类问题要好得多。 – Wes 2011-04-26 06:24:44
@Wes这些*“过去的日子”*的年龄? PHP可以在不使用'evil()'的情况下执行它,因为它有循环和变量变量...... :) – deceze 2011-04-26 06:26:41
我想我的时间过去的日子是在我知道4.3之前的'extract'之前。只是显示我知道我猜的。 '邪恶()'...不错:)使用提取物 – Wes 2011-04-26 06:28:45