Inhaltsverzeichnis
PHP 数组遍历foreach语法结构及实例,foreach语法
Heim Backend-Entwicklung PHP-Tutorial PHP 数组遍历foreach语法结构及实例,foreach语法_PHP教程

PHP 数组遍历foreach语法结构及实例,foreach语法_PHP教程

Jul 12, 2016 am 08:49 AM
foreach php 遍历数组

PHP 数组遍历foreach语法结构及实例,foreach语法

foreach()

PHP foreach() 语法结构用于遍历操作或输出数组,foreach() 仅能用于遍历数组或对象,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。

语法:

1

2

3

4

5

6

foreach (array as $value)

  statement

// 或者:

foreach (array as $key => $value)

 

statement

Nach dem Login kopieren

上述语法中,每次循环将当前单元的值赋给 $value 并且数组内部的指针向前移一步。在第二种语法格式中还将当前单元的键名也会在每次循环中赋给变量 $key。

例子:

1

2

3

4

5

6

<&#63;php

$arr_age = array("wang"=>18, "li"=>20, "zhang"=>25);

foreach ($arr_age as $age) {

  echo $age,'<br />';

}

&#63;>

Nach dem Login kopieren

运行该例子输出:

1

2

3

18

20

25

Nach dem Login kopieren

使用数组键值

1

2

3

4

5

6

<&#63;php

$arr_age = array("wang"=>18, "li"=>20, "zhang"=>25);

foreach ($arr_age as $key=>$age) {

  echo $key,': ',$age,'<br />';

}

&#63;>

Nach dem Login kopieren

运行例子输出:

1

2

3

wang: 18

li: 20

zhang: 25

Nach dem Login kopieren

当 foreach 开始执行时,数组内部的指针会自动指向第一个单元,这意味着不需要在 foreach 循环之前调用 reset()。

foreach 所操作的是指定数组的一个拷贝,而不是该数组本身。对返回的数组单元的修改也不会影响原数组(见下面例子),但 foreach 循环运行到结束,原数组的内部指针将指向数组的结尾。

1

2

3

4

5

6

7

8

9

<&#63;php

$arr_age = array("wang"=>18, "li"=>20, "zhang"=>25);

foreach ($arr_age as $age) {

  $age = $age+10;

  echo $age,'<br />';

}

// 输出原数组

print_r($arr_age);

&#63;>

Nach dem Login kopieren

运行例子输出:

1

2

3

4

28

30

35

Array ( [wang] => 18 [li] => 20 [zhang] => 25 )

Nach dem Login kopieren

要在 foreach 中修改原数组元素,可以通过引用来实现,将上面的例子更改为:

1

2

3

4

5

6

7

8

9

<&#63;php

$arr_age = array("wang"=>18, "li"=>20, "zhang"=>25);

foreach ($arr_age as &$age) {

  $age = $age+10;

  echo $age,'<br />';

}

// 输出原数组

print_r($arr_age);

&#63;>

Nach dem Login kopieren

运行例子输出:

1

2

3

4

5

18

20

25

 

Array ( [wang] => 28 [li] => 30 [zhang] => 35 )

Nach dem Login kopieren

遍历多维数组

foreach 语法结构只能用于遍历一维数组,要遍历多维数组,一般是将 foreach 嵌套递归使用或者将原数组分割为一维数组再进行 foreach 遍历。

一二维数组混合的例子:

1

2

3

4

5

6

7

8

9

10

11

12

<&#63;php

$arr_age = array("wang"=>18, "li"=>20, "zhang"=>array("name"=>"小张", "age"=>25));

foreach ($arr_age as $age) {

  if(is_array($age)){

    foreach ( $age as $detail) {

    echo $detail,'<br />';

    }

  } else {

    echo $age,'<br />';

  }

}

&#63;>

Nach dem Login kopieren


对多维数组的遍历处理就要根据实际的数据结构而采取最合适的处理方式。

PHP 数组是通过哈希表(HashTable)表实现的,因此 foreach 遍历数组时是依据元素添加的先后顺序来进行的。如果想按照索引大小遍历,应该使用 for() 循环遍历。

for() 循环遍历数组

如果是操作连续键值的数组,也可以采用 for() 循环来遍历数组:

1

2

3

4

5

6

7

<&#63;php

$arr_age = array(18, 20, 25);

$num = count($arr_age);

for($i = 0; $i < $num; $i++){

  echo $arr_age[$i]."<br />";

}

&#63;>

Nach dem Login kopieren

也可以用 list() 和 each() 结合来遍历数组,但测试发现效率不如 foreach() 。

以上这篇PHP 数组遍历foreach语法结构及实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持帮客之家。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1136648.htmlTechArticlePHP 数组遍历foreach语法结构及实例,foreach语法 foreach() PHP foreach() 语法结构用于遍历操作或输出数组,foreach() 仅能用于遍历数组或对象,当...
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

CakePHP Datum und Uhrzeit

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

CakePHP-Datei hochladen

CakePHP-Routing CakePHP-Routing Sep 10, 2024 pm 05:25 PM

CakePHP-Routing

CakePHP-Projektkonfiguration CakePHP-Projektkonfiguration Sep 10, 2024 pm 05:25 PM

CakePHP-Projektkonfiguration

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

Besprechen Sie CakePHP

CakePHP-Kurzanleitung CakePHP-Kurzanleitung Sep 10, 2024 pm 05:27 PM

CakePHP-Kurzanleitung

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein

See all articles