Table of Contents
PHP中foreach()用法汇总,phpforeach
Home php教程 php手册 PHP中foreach()用法汇总,phpforeach

PHP中foreach()用法汇总,phpforeach

Jun 13, 2016 am 08:58 AM
foreach php

PHP中foreach()用法汇总,phpforeach

PHP 4 引入了 foreach 结构,和 Perl 以及其他语言很像。这只是一种遍历数组简便方法。foreach 仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。有两种语法,第二种比较次要但却是第一种的有用的扩展。

1

2

3

4

5

foreach (array_expression as $value)

  statement

 

foreach (array_expression as $key => $value)

  statement

Copy after login

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

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

先来看第一个语句,这个语句比较简单,array_expression指的是一个数组表达式,as $val语句将顺序取得该数组的值并保存到$val变量中,此种方法只能取得数组内的值,而不能取得数组的下标索引值。例如:

1

2

3

4

$myArray=array("1"=>"val1","2"=>"val2","3"=>"val3");

foreach($myArray as $val) {

   print($val." ");

}

Copy after login

其结果会输出:val1 val2 val3

再来看看第二种格式,第二种格式除了能像第一种格式一样得到数组内元素的值外,还能得到元素的索引值,并保存到$key变量中,如果数组的索引值未经过人工设定,则返回系统默认的设定值,
看正面例子:

先看一个简单的一维数组:

1

2

3

4

$myArray=array("1"=>"val1","2"="val2","3"=>"val3");

foreach($myArray as $key=>$val) {

   print($key."=>".$val.";");

}

Copy after login

该程序将出输出:1=>val1;2=>val2;3=>val3;,接下来我们再来看一个复杂一点的二维数组遍历,程序如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

$myArray=array(

   "1"=>array("11"=>"val11","12"=>"val12","13"=>"val13"),

   "2"=>array("21"=>"val21","22"=>"val22","23"=>"val23"),

   "3"=>array("31"=>"val31","32"=>"val32","33"=>"val33")

);

print("<ul>");

foreach($myArray as $key=>$val) {

   print("<li>".$key."</li>");

   if (is_array($val)) {   //判断$val的值是否是一个数组,如果是,则进入下层遍历

     print("<ul>");

    foreach($val as $key=>$val) {

       print("<li>".$key."=>".$val."</li>");

     }

     print("</ul>");

   }

}

print("</ul>");

Copy after login

输出结果:

1

2

3

4

5

6

7

8

9

10

11

12

1

  11=>val11

  12=>val12

  13=>val13

2

  21=>val21

  22=>val22

  23=>val23

3

  31=>val31

  32=>val32

  33=>val33

Copy after login

  • 是 标签,作用是显示个实心小圆点和空心小圆点。
    由于上面的是一个二维数组,在第一次遍历后所得到的$val值将是一个数组,所以我在遍历中加了一个判断,以便进行二层数组遍历。

    再通过一个实例解惑

    1

    2

    3

    4

    5

    6

    7

    8

    <&#63;php

    $a = array("1"=>"语文","2"=>"数学","3"=>"英语");

    $b = array("1"=>"95","2"=>"99","3"=>"92");

    foreach($a as $key=>$value){

      echo $value;

    echo $b[$key]."<br>";

    }

    &#63;>

    Copy after login

    问题是为什么输出数组$b中的值要用$b[$key]而不是$b[$value]?

    这是为什么呢?

    $a = array("1"=>"语文","2"=>"数学","3"=>"英语");
    上面这个和下面这个是完全一样的

    $a[1]="语文";
    $a[2]="数学"
    $a[3]=“英语”

    我们输出上面的数组是怎么输出的呢?

    肯定是echo $a[1];

    对不对?

    如果没有疑问我们继续!!!!

    ------------------------------

    简单说foreach

    它的格式是这样的foreach(数组名 as 下标=>值)

    下标也就是上面的$a[1],这里的1就是数组的下标!

    到这你应该明白了,为什么是$a[$key]这样输出

    你记住不管怎么变,数组的输出方法永远是$a[1],不会是$a['语文']

    ================================================================

    foreach()有两种用法:

    1

    2

    3

    1: foreach(array_name as $value){

        statement;

      }

    Copy after login

    这里的array_name是你要遍历的数组名,每次循环中,array_name数组的当前元素的值被赋给$value,并且数组内部的下标向下移一步,也就是下次循环回得到下一个元素。

    1

    2

    3

    2:foreach(array_name as $key => $value){   

        statement; 

     

    Copy after login

     这里跟第一种方法的区别就是多了个$key,也就是除了把当前元素的值赋给$value外,当前元素的键值也会在每次循环中被赋给变量$key。键值可以是下标值,也可以是字符串。比如book[0]=1中的“0”,book[id]="001"中的“id”.

    以上所述就是本文的全部内容了,希望大家能够喜欢。

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

7 PHP Functions I Regret I Didn't Know Before 7 PHP Functions I Regret I Didn't Know Before Nov 13, 2024 am 09:42 AM

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

How do you parse and process HTML/XML in PHP? How do you parse and process HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

PHP Program to Count Vowels in a String PHP Program to Count Vowels in a String Feb 07, 2025 pm 12:12 PM

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Explain late static binding in PHP (static::). Explain late static binding in PHP (static::). Apr 03, 2025 am 12:04 AM

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? Apr 03, 2025 am 12:03 AM

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.

See all articles