在文档中,我想为我的收藏中的每个人存储唯一的电话号码,如下所示:
phones: {
"5551112222": {
extension: "101",
type: "Mobile"
},
"8005554444": {
extension: "225",
type: "Work"
},
},
name: {
first: "john",
last: "smith"
}
我的PHP代码访问它,这让我可以访问扩展和类型,但是如何访问数字部分,因为$ d显然不起作用,因为它只返回整个数组?
foreach ($cursor['phones'] as $d) {
echo 'number: ' . $d . '<br />ext. ' . $d['extension'] . '<br />type: ' . $d['type'];
答案 0 :(得分:1)
根据var_dump
变量的$cursor['phones']
输出:
array(2){[5551112222] =&gt; array(2){[“extension”] =&gt; string(3)“101” [ “型”] =&GT; string(6)“Mobile”} [8005554444] =&gt;数组(2){ [ “扩展名”] =&GT; string(3)“225”[“type”] =&gt; string(4)“工作”}}
将您的代码更改为:
foreach ($cursor['phones'] as $number => $extra) {
echo 'number: ' . $number . '<br />ext. ' . $extra['extension'] . '<br />type: ' . $extra['type'];
原因很简单,当使用以下格式的foreach
循环时:
foreach($arr as $d)
$d
将包含该对的值。
从php手册: http://php.net/manual/en/control-structures.foreach.php
foreach (array_expression as $value)
statement
foreach (array_expression as $key => $value)
statement
答案 1 :(得分:0)
$d
将返回整个数组,foreach值代表数组,$d['extension']
应该可以工作;可以?如果您正在尝试获取密钥,请将您的foreach更改为:
foreach($cursor['phones'] as $id => $d){
并使用$id
var输出数字。