这是php代码:
$slavesites = array(
'Category1' => array('Anchor1', 'http://www.test1.com'),
'Category2' => array('Anchor2', 'http://www.test2.com')
);
foreach($slavesites as $category => $slavesite){
echo $category;
foreach($slavesite as $anc => $url){
echo $anc.'<br>';
echo $url.'<br>';
}
}
问题是当我运行代码时,我得到一个“0”和“1”:
Category10 **--- WHERE DOES THE 0 COME FROM?**
Anchor1
1 **---- WHERE DOES THE 1 COME FROM?**
http://www.test1.com
Category20 --- WHERE DOES THE 0 COME FROM?
Anchor2
1 ---- WHERE DOES THE 1 COME FROM?
http://www.test2.com
泰!:) 希望你能帮忙......
答案 0 :(得分:3)
如果你想像这样遍历你的数组,你必须将元素存储为键值对:
$slavesites = array(
'Category1' => array('Anchor1' => 'http://www.test1.com'),
'Category2' => array('Anchor2' => 'http://www.test2.com')
);
显示0
和1
,因为您没有定义键,因此使用数字键。
答案 1 :(得分:2)
第二个foreach迭代数组而没有设置适当的索引。这样就使用了默认索引(0,1,2,...),因此也就是输出中的数字。
e.g。实际上你的定义是这样的:
$slavesites = array(
'Category1' => array(0 => 'Anchor1', 1 => 'http://www.test1.com'),
'Category2' => array(0 => 'Anchor2', 1 => 'http://www.test2.com')
);
你应该在内循环中使用'list'而不是'foreach':
list($anc, $url) = $slavesite;