首頁 > 後端開發 > php教程 > list()和each()有关问题

list()和each()有关问题

WBOY
發布: 2016-06-13 12:18:13
原創
980 人瀏覽過

list()和each()问题

本帖最后由 u014402634 于 2015-04-02 21:06:29 编辑
<br />$fruit = array('a' =>'apple','b'=>'banana','c'=>'cranberry' );<br />reset($fruit);<br />while (list($key,$val)=each($fruit))<br />{<br />	echo "$key=>$val<br>";<br />}<br />//------------------------------------------------------------------------<br /><br /><br />each()不是由4个元素构成么<br />比如第一个是 Array ( [1] => apple [value] => apple [0] => a [key] => a )<br />看手册说list()是从最右边参数开始赋值的  <br />each()4个元素究竟怎么赋值给list两个元素  按理说不是把前两个apple赋值给$key和$val了吗? <br />为啥最后echo能正常输出 对应的 键值对 呢?<br /><br />
登入後複製


------解决思路----------------------
你不看手册的吗?
注: list() 仅能用于数字索引的数组并假定数字索引从 0 开始。

$fruit = array('a' =>'apple');<br />print_r(each($fruit));<br />
登入後複製
Array<br />(<br />    [1] => apple<br />    [value] => apple<br />    [0] => a<br />    [key] => a<br />)<br />
登入後複製
reset($fruit);<br />list($key, $value) = each($fruit);<br />echo "$key => $value";<br />
登入後複製
a => apple
登入後複製
只有数字索引的部分被指派
这样清楚点
$ar = array('a', 'b', 'c' => 'c');<br />list($a, $b, $c) = $ar; //会有 Undefined offset: 2 警告<br />echo "$a $b $c\n";<br />
登入後複製

是按下标递增分配的
$ar = array(1 => 'a', 2 => 'b', 0 => 'c');<br />list($a, $b, $c) = $ar;<br />echo "$a $b $c\n";<br />
登入後複製
c a b
登入後複製
是从右往左分配的
$ar = array('a', 'b', 'c');<br />list($aa[$b][$c], $b, $c) = $ar;<br />print_r($aa);
登入後複製
Array<br />(<br />    [b] => Array<br />        (<br />            [c] => a<br />        )<br /><br />)<br />
登入後複製
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板