java中foreach循环遍历二维数组_php如何遍历二维数组

f19b6d2a5c5f03b2f56147cfc0527c6a.png

官方文档中给了foreach的两种用法

foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。

有两种语法:foreach (array_expression as $value)

statement

foreach (array_expression as $key => $value)

statement

第一种格式遍历给定的 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。

第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量 $key。

来看第二种,代码如下:$a = array(

"one" => array(1,2,3,4),

"two" => array(5,6,7,8),

"three" => array('a','b','c','d')

);

foreach ($a as $k => $v) {

echo $k . '
';

print_r($v);

echo '
';

foreach ($a[$k] as $index => $value) {

echo $k . '
';

echo $index . '
';

echo $value . '
';

}

}

可以看到,我们设置了一个二维数组$a,并且设置了索引,部分输出如下:

第一行:可以看到$k对应的就是第二维数组的索引,比如第一条数组的“one”

第二行:$v对应的是第二维的数组(因为不能直接用echo输出,在这里使用了print_r),比如第一条数据的array(1,2,3,4),foreach中嵌套的那一层循环中,$a[$k]表示的就是$v,这里写$a[$k]和写$v输出结果都是一样的,因为表示的也是同样的意思

第三行:$k仍旧是第二维数组的索引

第四行:$index是第二维数组数据的索引,隐式定义的,从0开始

第五行:$value是第二维数组的数据

接下来就是重复的输出了。

8078c82e736cf9cba99b5705aab8b0b0.png

可以看到foerach的确是个很强大的函数,上面是没有定义第二位数组的数据索引的情况,那如果第二位数组的数据也定义了索引呢,其实都一样,foreach语句也相同$b=array ( '0' => Array ( 'jid' => 10,'j名' => 10,'jabstract' => 10,'jprovider' => 10,'jintroduction' => '厉害人物'),

'1' => Array ( 'jid' => 8 ,'j名' => 8, 'jabstract' => 8, 'jprovider' => 8, 'jintroduction' => '厉害人物')

);foreach ($b as $k => $v) {

echo $k.'
';

print_r($v);

echo '
';

foreach ($b[$k] as $index => $value){

echo $index.'
';

echo $value.'
';

}

}

输出跟上面的也是一样的原理

938073b7b99a89d0b310423f077213c0.png

注意使用utf-8格式,要不然输出的时候会乱码。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值