Php子数组代码添加额外的值


Php subarrays code adds extra values

这是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"answers"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

泰!:)

second foreach遍历数组,但没有设置合适的索引。这样使用默认索引(0,1,2,…),因此输出的数字。

。实际上你的定义是这样的:

$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;

如果要像这样遍历数组,则必须将元素存储为键值对:

$slavesites = array(
  'Category1' => array('Anchor1' => 'http://www.test1.com'),
  'Category2' => array('Anchor2' => 'http://www.test2.com')
);

显示01,因为您没有定义键,因此它使用数字键。