php foreach 第一个,为什么 foreach 输出数组 元素的第一个字符

$sql=mysql_query("select b.userid,b.username,b.card_no,b.buytime,b.commission1,m.level from buybak b left joinmember m on b.userid=m.userid where m.agentid='".$user[userid]."' and b.status1>=0 " );

$array = @mysql_fetch_array($level1_orders);

foreach ($array as $rows) {

echo $rows.'

';//循环输出两个数组的信息

echo $rows['userid'].'

';//这样却只输出了每个元素的第一字符,如username的值为test,则输出了t。这是怎么回事?

}

用while可以正常输出,我想知道怎么用foreach输出

回复讨论(解决方案)

$array = @mysql_fetch_array($level1_orders);

print_r($array); //看看是什么

$array = @mysql_fetch_array($level1_orders);

print_r($array); //看看是什么

print_r($array)只输出了一个数组,while会循环两个二维数组,两个才是对的。foreach却没办法打印下标

Array

(

[0] => 3

[userid] => 3

[1] => test3

[username] => test3

[2] => VIP

[card_no] => VIP

[3] => 2016-02-16 14:53:33

[buytime] => 2016-02-16 14:53:33

[4] => {"1":5,"2":8,"3":10,"4":12}

[commission1] => {"1":5,"2":8,"3":10,"4":12}

[5] => 1

[level] => 1

)

while循环是怎样的,打印输出看看

其次,你上边的这种foreach遍历是遍历二维数组的,但是你的$array明显就是一维数组。

$array = @mysql_fetch_array($level1_orders);

print_r($array); //看看是什么

这是while循环出来的,这个是对的。

Array

(

[0] => Array

(

[0] => 2

[id] => 2

[1] => 3

[userid] => 3

[2] => test3

[username] => test3

[3] => VIP

[card_no] => VIP

[4] => 2016-02-16 14:53:33

[buytime] => 2016-02-16 14:53:33

[5] => {"1":5,"2":8,"3":10,"4":12}

[commission1] => {"1":5,"2":8,"3":10,"4":12}

[6] => 1

[level] => 1

)

[1] => Array

(

[0] => 10

[id] => 10

[1] => 8

[userid] => 8

[2] => test8

[username] => test8

[3] => VIP

[card_no] => VIP

[4] => 2016-02-16 14:59:13

[buytime] => 2016-02-16 14:59:13

[5] => {"1":5,"2":8,"3":10,"4":12}

[commission1] => {"1":5,"2":8,"3":10,"4":12}

[6] => 1

[level] => 1

)

)

mysql_fetch_array($level1_orders) 返回的是一维数组

所以你需要用 while 循环执行 mysql_fetch_array 以读取全部结果

遍历一维数组只需使用一个循环,你用两个自然就不对了

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值