首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这段php代码只输出一部分?

为什么这段php代码只输出一部分?
EN

Stack Overflow用户
提问于 2013-04-16 09:47:59
回答 1查看 34关注 0票数 0
代码语言:javascript
复制
<?php
    $products = array(
        array("name"=>"apple", "count"=>1),
        array("name"=>"google", "count"=>2),
        array("name"=>"ms", "count"=>4)
    );
    echo "one:<br/>";
    for ($i=0; $i < count($products); $i++) {
        foreach ($products[$i] as $key => $value) {
            echo $key."-".$value.",";
        } 
        echo "<br/>";
    }
    echo "<br/>two:<br/>";
    for ($j=0; $j < count($products); $j++) {
        while(list($k, $v) = each($products[$j])){
            echo $k."|".$v.",";
        }
        echo "<br/>";
    }
?>

这段代码只是输出:

代码语言:javascript
复制
one:
name-apple,count-1,
name-google,count-2,
name-ms,count-4,

two:

我想知道为什么这两部分不能输出?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-16 09:53:10

因为每个子数组的内部数组指针已经位于数组的末尾,并且当您尝试使用each()时,将不会返回任何内容。试试这个:

代码语言:javascript
复制
echo "<br/>two:<br/>";
for ($j=0; $j < count($products); $j++) {
    reset( $products[$j]);
    while(list($k, $v) = each($products[$j])){
        echo $k."|".$v.",";
    }
    echo "<br/>";
}

它所做的一切就是调用reset()来重置数组指针。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16027470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档