Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php如何遍历二维数组

php如何遍历二维数组

王林
王林asal
2019-09-24 17:54:099296semak imbas

php如何遍历二维数组

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

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

有两种语法:

foreach (array_expression as $value)
   statement
foreach (array_expression as $key => $value)
   statement

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

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

相关文章推荐:
1.什么是php二维数组?php二维数组实例详解
2.php对于二维数组的相应操作
 相关视频推荐:
1.独孤九贱(4)_PHP视频教程

来看第二种,代码如下:

$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 . &#39;<br>&#39;;
    print_r($v);
    echo &#39;<br>&#39;;
    foreach ($a[$k] as $index => $value) {
        echo $k . &#39;<br>&#39;;
        echo $index . &#39;<br>&#39;;
        echo $value . &#39;<br>&#39;;
    }
}

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

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

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

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

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

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

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

二位数组-1.png

可以看到foerach的确是个很强大的函数,上面是没有定义第二位数组的数据索引的情况,那如果第二位数组的数据也定义了索引呢,其实都一样,foreach语句也相同

$b=array (    &#39;0&#39; => Array ( &#39;jid&#39; => 10,&#39;j名&#39; => 10,&#39;jabstract&#39; => 10,&#39;jprovider&#39; => 10,&#39;jintroduction&#39; => &#39;厉害人物&#39;),
   &#39;1&#39; => Array ( &#39;jid&#39; => 8 ,&#39;j名&#39; => 8, &#39;jabstract&#39; => 8, &#39;jprovider&#39; => 8, &#39;jintroduction&#39; => &#39;厉害人物&#39;)
);
foreach ($b as $k => $v) {
    echo $k.&#39;<br>&#39;;
    print_r($v);
    echo &#39;<br>&#39;;
    foreach ($b[$k] as $index => $value){
        echo $index.&#39;<br>&#39;;
        echo $value.&#39;<br>&#39;;
    }
}

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

二维数组-1.png

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

推荐教程:PHP视频教程

Atas ialah kandungan terperinci php如何遍历二维数组. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:php如何处理多线程Artikel seterusnya:PHP如何保证代码质量