foreach语法结构提供了遍历数组的简单方式。foreach仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。有两种语法:
foreach (array_expression as $value)
statement
foreach (array_expression as $key => $value)
statement
第一种格式遍历给定的array_expression数组。每次循环中,当前单元的值被赋给$value并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。
第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量$key。
Note:
当foreach开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在foreach循环之前调用
由于foreach依赖内部数组指针,在循环中修改其值将可能导致意外的行为。
var dump($result);
输出:
D:\zhangmengli\ci\application\controllers\Welcome.php:44:
array (size=4)
0 =>
array (size=10)
'id' => string '25' (length=2)
'name' => string '木瓜' (length=6)
'price' => string '10.52' (length=5)
'sb' => string '2公斤' (length=7)
'img_url' => string ',http://testzhangmengli.com/admin/uploads/158127172993760.jpg' (length=61)
'content' => string '1' (length=1)
'content2' => string '2' (length=1)
'content3' => string '3' (length=1)
'create_time' => string '2020-02-10 02:09:03' (length=19)
'update_time' => null
1 =>
array (size=10)
'id' => string '26' (length=2)
'name' => string '木瓜' (length=6)
'price' => string '10.52' (length=5)
'sb' => string '2公斤' (length=7)
'img_url' => string ',http://testzhangmengli.com/admin/uploads/158127172993760.jpg' (length=61)
'content' => string '1' (length=1)
'content2' => string '2' (length=1)
'content3' => string '3' (length=1)
'create_time' => string '2020-02-10 02:09:03' (length=19)
'update_time' => null
2 =>
array (size=10)
'id' => string '27' (length=2)
'name' => string '木瓜' (length=6)
'price' => string '10.52' (length=5)
'sb' => string '2公斤' (length=7)
'img_url' => string ',http://testzhangmengli.com/admin/uploads/158127172993760.jpg' (length=61)
'content' => string '1' (length=1)
'content2' => string '2' (length=1)
'content3' => string '3' (length=1)
'create_time' => string '2020-02-10 02:09:03' (length=19)
'update_time' => null
3 =>
array (size=10)
'id' => string '28' (length=2)
'name' => string '纯白t-shirt' (length=13)
'price' => string '3.00' (length=4)
'sb' => string 'xs/s/m' (length=6)
'img_url' => string ',http://testzhangmengli.com/admin/uploads/158134969187708.jpg,http://testzhangmengli.com/admin/uploads/158134969665934.jpg' (length=122)
'content' => string '<p>w</p>' (length=20)
'content2' => string '<p>w</p>' (length=20)
'content3' => string '<p>w</p>' (length=20)
'create_time' => string '2020-02-10 23:48:23' (length=19)
'update_time' => null
<?php foreach ($result as $k => $v){?>//$k 指的就是第二维数组的索引 0 1 2 3
$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);
输出结果为
0
输出第二维数组的索引
$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) { foreach ($b[$k] as $index => $value){ echo $index.'
'; echo $value.'
'; } }
$b[$k] 指的就是 表示的就是$v,这里写$b[$k]和写$v输出结果都是一样的,因为表示的也是同样的意思 。
$index是第二维数组数据的索引,隐式定义的,从0开始
$value是第二维数组的数据
所以输出结果是: