例如js中可以这么写:
let o = {
a:1,
b:2,
c:3
};
let {a,b} = o;
console.log(a);//1
console.log(b);//2
我知道php中有个list,但是仅能用于数字索引的数组。
4 回答

慕标琳琳
TA贡献1830条经验 获得超9个赞
php7.1 已经提供类似方法
$array = ["a" => 1, "b" => 2, "c" => 3];
["a"=>$a, "c"=>$c] = $array;
echo $a,$c; // 13

jeck猫
TA贡献1909条经验 获得超7个赞
list()只用于数字索引的数组,且假定数字索引从 0 开始。
当数组不是数字数组而是关联数组时,如:
<?php
$my_array = array('a'=>'Dog','b'=>'Cat','c'=>'Horse');
list($a, $b, $c) = $my_array;
echo 'I have several animals, a '.$a.', a '.$b.' and a '.$c;
?>
结果将会报错

慕哥9229398
TA贡献1877条经验 获得超6个赞
<?php
$arr = array(
'a'=>4,
'b'=>2,
);
list($a,$b) = array_values($arr);
echo $a.','.$b;
将关联数组转换成索引数组

偶然的你
TA贡献1841条经验 获得超3个赞
有个东西叫each
<?php
$my_array = array('a'=>'Dog','b'=>'Cat','c'=>'Horse');
list($a, $b, $c) = each($my_array);
echo 'I have several animals, a '.$a.', a '.$b.' and a '.$c;
- 4 回答
- 0 关注
- 723 浏览
添加回答
举报
0/150
提交
取消