PHP中的 list() 函数在文档中突出显示了这种情况:
警告 list()分配从最右边开始的值 参数。如果您使用的是纯变量,则无需担心 对这个。但是如果你通常使用带索引的数组 期望数组中索引的顺序与你在中写的相同 list()从左到右;它不是。它被分配在 逆序。
我不完全明白。这意味着什么?
您能否提供一个可以解释所述案例的代码示例?
答案 0 :(得分:2)
class Ab
{
public $a;
function abc()
{
$this->a=array(10,2,30,"onkar"=>array(8,5,6));
}
function print()
{
echo "<br>printing original array";
print_r($this->a);
foreach($this->a as $key=>$value)
{
if (strcmp("onkar",$key)!=0)
$temp[]=$value;
else
{
list($temp[],$temp[],$temp[])=$this->a["onkar"];
print_r($temp);
}
}
}
}
这里在提取键“onkar”时,我们分别得到5,6,8(原来是8,6,5),如手册所示。希望这有帮助。
答案 1 :(得分:1)
从您对此问题的修改....请注意文档中与咖啡/棕色/咖啡因相关的示例....结果 值 是按照您期望的顺序,但 键 是相反的。 $info
数组中的条目从左到右存储在正确的条目($a[0]
,$a[1]
和$a[2]
)中,但{{1}中的索引顺序由于函数在内部实际执行的方式而被颠倒过来....除非你重新列入数组,并期望按索引排序的结果,否则这不是问题
答案 2 :(得分:0)
你所有的例子都很好。您需要查看文档以了解list函数的工作原理。
但是如果你真的只想传入一个包含三个值的数组,你可以从数组中切割出前三个值。像这样。
list($first, $second, $third) = array_slice(array(1, 2, 3, 4, 5), 0, 3);