前二天自己試做一個陣列
程式內容:
<?php
$userData['andy'] = array(
$tel='123456';
$addr='0987654321';
);
$userData['cdefgl'] = array(
略...
);
$userData['chijk'] = array(
略...
);
$userData['almnopq'] = array(
略...
);
問題處:
foreach ($userData as $index => $value){
Echo $index[1] .'<br>';
}
?>
輸出是
a
c
c
a
將Echo $index[1] .'<br>'; 改為 Echo $index[2] .'<br>';則輸出
n
d
h
l
想請問$index[1]寫法的介紹及相關的說明參考.
我不解的是本來以為$index[1]會帶出$tel或$addr索引或值,結果跑出這個每個陣列的1個字...
已了解應該再用一個迴圈來讀$tel或$addr的資料
你給的程式連編譯都不會過..
猜你應該想這樣弄:
<pre class="c" name="code">
<?php
$userData['andy'] = array(
'tel'=>'123456',
'addr'=>'0987654321',
);
$userData['cdefgl'] = array(
'tel'=>'223456',
'addr'=>'1987654321',
);
$userData['chijk'] = array(
'tel'=>'323456',
'addr'=>'2987654321',
);
$userData['almnopq'] = array(
'tel'=>'423456',
'addr'=>'3987654321',
);
foreach ($userData as $index => $value){
Echo $value['tel'] .'<br>';
}
$index 是 key, 也就是 'andy' 之類的字串
字串使用陣列運算子取值就等於取第幾個字, 例如:
<pre class="c" name="code">
echo "abcde"[0];
會得到 "a"
另外你的陣列也有問題:
$userData['andy'] = array(
$tel='123456',
$addr='0987654321',
);
這會等同於:
<pre class="c" name="code">$userData['andy'] = array(
'123456',
'0987654321',
);
因為 $tel='123456' 是賦值運算, php 的賦值運算有回傳值, 跟 C 一樣
並且 $tel 與 $addr 會變成最後一個值