PHP入门

数组的定义与遍历

此课程是收费课程,请先购买或加入会员后再访问。

[TOC]

数组的概述

PHP中的数组,是目前本人见过所有程序语言里,最强大的数组.

其他程序语言里面,有元组/列表/字典/数组/堆/栈/链表/队列/集合等等数据结构,在PHP中一个数组就能全部搞定.

数组的主要作用就是存储数据,修改数据.

数组的定义

在PHP中,有两种方式定义数组
```php
//$array = array();

$array[0] = 1;
$array[1] = "PHP";
$array[2] = "Linux";
$array[3] = "MySQL";

$array[] = 1;
$array[] = "PHP";
$array[] = "Linux";
$array[] = "MySQL";

$array[] = 1;
$array[] = "PHP";
$array[10] = "Linux";
$array[] = "MySQL";

$array["id"] = 1;
$array["p"] = "PHP";
$array["l"] = "Linux";
$array["m"] = "MySQL";

//print_r($array); //输出一个数组
//echo $array["id"];
```

$array = array(1, "PHP", "Linux", "MySQL");

$array = array(
                "id"=>1,
                "p"=>"PHP",
                "l" => "Linux",
                "m"=> "MySQL"
                );

多维数组的定义

$array = array(
                array("aaron Lau", "男"),
                array("pipi Ho", "女"),
                array("ruby Lau", "女")
                );

数组的遍历

$array1 = array(1, "PHP", "Linux", "MySQL");

for($i=0; $i<count($array1); $i++) {
    echo $array1[$i]."<br />";
}

$array2 = array(
                array("aaron Lau", "男"),
                array("pipi Ho", "女"),
                array("ruby Lau", "女")
                );

for($i=0; $i<count($array2); $i++) {
    echo "第".$i+1."个一维数组,内容是:";
    for($j=0; $j<count($array2[$i]); $j++) {
        echo $array2[$i][$j];
    }
}

foreach($array1 as $key=>$value) {
    echo $value;
}

//请学生将第二个for循环改为foreach语句输出

不太常用的遍历方法

each函数,依次返回关联和索引混合的数组.
```php
$contact = array("id"=>1, "name"=>"Aaron", "address"=>"光谷", "job"=>"老师");

$id = each($contact);
//print_r($id);

$name = each($contact);
$address = each($contact);
$job = each($contact);
```

list函数,把数组中的值,赋给一些变量,注意仅能使用数字索引数组,并从0开始.
```php
$info = array("coffee", "tea", "milk");

list($c, $t, $m) = $info;
//echo $c;

list($c, $t) = $info;

list(,,$t) = $info;
```

结合eachlist函数使用
```php
$contact = array("id"=>1, "name"=>"Aaron", "address"=>"光谷", "job"=>"老师");

list($key,$value) = each($contact);
echo $key."=>".$value;
```

结合while/eachlist使用
```php
$contact = array("id"=>1, "name"=>"Aaron", "address"=>"光谷", "job"=>"老师");

while(list($key,$value) = each($contact)){
echo $key."=>".$value;
}
```

使用数组的内部指针控制函数遍历数组
current(): 当前的值
key(): 当前的索引
next(): 后移一位
prev(): 前移一位
end(): 移到最后
reset(): 移到最前

key($contact);
next($contact);
key($contact);
end($contact);
current($contact);

练习

1.如下代码运行后,$array数组所包含的值是?

$array = array(1,1);
foreach($array as $k=>$v) {
    $v = 2;
}

print_r($array);

2.下面代码输出的是?

$s = 12345;
$s[$s[1]] = 2;
echo $s;

3.如下代码的运行结果为?

$a[] = 1;
$a[] = 2;
$a[] = 3;
$a[2] = 4;
for($i=0; $i<count($a); $i++) {
    if($i==2) {
        echo $a[$i];
    }
}