PHP语法-数组

l      数组可以通过用户创建取得,也可以由函数返回,或由函数创建,例如:数据库查询函数。数组就是具有相同属性变量的集合,其本质就是操作和管理存储在其中的变量。

l      关键内容:数组的建立  数组的遍历

l      数组是一组具有相同数据类型元素组成的一个有序图。PHP中的图是一种把 values(值)映射到 keys(键名)的类型。数组通过使用array()函数定义,其值使用“key=>value”的方式设置,多个值通过逗号分割。数组的定义,如以下代码所示。

l       <?php

l      //为数组的值指定键名

l      $one = array(

l      "yellow"=>"banana",

l      "red"=>"flower",

l      "3"=>"三",

l      "03"=>"叁“

l      );

l      //直接为数组赋值

l      $two = array(1,2,3,4,5,6,7,8,9);

l      //带有一个键名的数组

l      $three = array(6=>"六","七","八","九","十");

l      ?>

l      数组的简单操作包括显示、添加、修改和删除,演示代码如下所示。

l      <?php//定义一个空数组

l      $ages = array();

l      //使用[]向数组中添加一个没有键名的值

l      $ages[] = "十七";

l      //使用[]向数组中添加一个有键名的值

l      $ages["18"] = "十八";

l      $ages[19] = "91";

l      //显示数组中的值

l      echo $ages[19];

l      //改变数组中的一个值

l      $ages[19] = "19";

l      //删除数组中的一个值

l      unset($ages[19]);

l      //删除整个数组

l      unset($ages);

l      //自动生成一个数组并为其赋值

l      $newages[] = 20;

l      $newages[] = 21;

l      遍历数组,就是把数组中的值,通过某种方法一一展现。数组的应用,大多都要求对数组进行遍历。遍历数组的方法很多,使用foreach()函数遍历数组的方法遍历数组

l      <?PHP

l      //创建一个数组

l      $colors = array("红","蓝","绿","黄","紫","青","橙");

l      //使用foreach遍历数组,并取得键名与值

l      foreach ($colors as $key => $value) {

l          echo "值'{$value}'的键名是$key<br>";

l      }

l      //使用foreach遍历数组,只取值

l      foreach($colors as $value){

l      echo "没有键名,只有值:{$value}<br>";

l      }

l      ?>

1        创建数组的几种方法

在以前介绍的创建数组的方法中,都是由用户使用array()函数来创建的,4.1小节将介绍使用数组函数创建数组的方法。这些方法不仅可以创建了数组,还可以实现更多的数组功能,以满足用户的需要。

1.1       新建一个数组

array()函数就是一个典型的数组函数,用户可以使用其创建一个新的数组,这个新数组可以是空数组,也可以包括定义时给定的数组元素。使用array()函数建立数组的演示代码如下所示。

<?php

//创建一个不带索引的数组

$numbers = array(1,2,3,4,5,6,7,8,9);

//创建一个带有索引的数组

$speed =array(1=>50,2=>120,3=>260,4=>300);

//创建一个二组数组

$two = array(

"color" =>array("red","blue","green"),

"numbers" =>array(1,2,3,4,5,6,7,8,9)

//显示数组所示元素

print_r($two);

//访问数组单个元素

echo $speed[2];

echo $two["color"][0];

?>

1.2       使用变量建立数组

使用compact()函数,可以把单个变量或多个变量,甚至数组,添加为数组的成员,这些数组成员的键名是变量的变量名,值是这些变量的值。compact()函数的参数是要添加入数组的变量的变量名。compact()函数使用方法的演示代码如下所示。

<?php                  //创建变量

$number = 18;

$string = "字符串";

$array =array("boy","girl");

//使用compact()函数创建新数组

$newArray =compact("number","string","array");

//显示新数组

print_r($newArray);

?>

1.3       使用两个数组创建一个数组

使用array_combine()函数,可以把两个数组合并为一个数组,但不是把两个数组的成员相加,而是使用第1个数组作为新数组的索引,另一个数组作为新数组的值。array_combine()函数使用方法演示代码如下所示。

<?php

//定义二个数组

$keys = array(1,2,3,4);

$values = array("red","green","blue","yellow");

//使用array_combine()创建新数组

$newArray = array_combine($keys,$values);

//显示新数组

print_r($newArray);

?>

2        数组中键名和值的操作

数组函数中对键名和值操作的函数比较多,对键名和值的操作,不仅仅是对已经定义完成的数组进行操作,还可以使用这些函数改变数组的键名和值,以达到程序运行的要求。

2.1       检查数组中是否存在某个键名或值

当一个数组有很多元素时,使用数组遍历来求证某个值或键名是否存在,在速度和效率上有一定的损失。PHP的数组函数提供了更好的解决方法,使用in_array()和array_key_exists()函数,可以快速从一个数组中取得某个值或键名是否存在的情况,下面演示in_array()和array_key_exists()函数的使用方法,

2.2      把数组中的值赋与指定变量

与访问变量相比,访问数组成员相对来说是比较麻烦的。而使用list()函数,可以把数组中的值,赋与指定的变量名,这时就可以在程序中使用这些直观的变量了。下面演示list()函数的使用方法,代码如清单所示。

$value=array("a","b","c","D");

list($a,,$b)=$value;

echo $a.$b;

2.3       交换数组中的键名和值

通常在操作数组时,主要是针对数组单元的值,但是在有些情况下,需要对键名进行修改,删除等操作,这时可以使用array_flip()函数,来交换数组的键名和值,来达到修改或删除键名的操作。下面演示array_flip()函数的使用方法,代码如下所示。

清单 array_flip()函数的使用方法

<?php//建立一个带有键名的数组

$speed =array(1=>50,2=>120,3=>260,4=>300);

//使用array_filp()函数交换键名与值

$speed =array_flip($speed);

echo"交换键名与值后的数组<br>";

print_r($speed);

echo"<br>";

?>

3        遍历数组的3种方法

只有在详细了解数组单元的情况下,才可以对数组做出正确的操作,虽然可以使用print_r()函数和var_dump()函数,来查看数组的成员,但是这两个函数,没有返回值可供操作。而遍历数组,才是在实际应用中,最多访问数组的方法。

3.1       使用while、list与each访问数组

list()函数可以把当前数组单元,转换为变量使用。each()函数可以返回数组中当前单元的键名与值,并将数组指针向下移动一步。使用这两个函数,结合while循环语句,就可以实现对数组的遍历。

3.2       使用for、foreach 访问数组

最常用的遍历数组的就是foreach语句,而且foreach语句也只能用于数组遍历。在实际使用中,可能只是对数组的某一部分进行访问,就不需要对整个数组的单元都遍历一次。这时可以使用for循环语句,就可以实现类似的功能,演示代码如下所示。

<?php

//定义一个数组

$array =range(1,100);

//使用for循环访问定义数组的一部分

for($i=20;$i<=30;$i++){

//显示单元的值

echo$array[$i];

}

//使用for循环语句遍历整个数组

for($i=0;$i<=count($array);$i++){

//显示单元的值

echo$array[$i];

}

?>

4 数组的排序

使用数组排序函数,可以把排序混乱的数组,进行重新整理,变得易于访问或操作。数组排序函数有很多,在实际使用时,可以根据情况来选择或组合使用。

4.1对数组排序

使用sort()函数,可以对已经定义的数组,进行重新排序,使得数组单元从低到高重新索引。sort()函数演示代码如下所示。

<?php

//定义一个测试用数组

$array =array(2=>"b",1=>"a",3=>"c",4=>"d");

//使用sort对数组排序

if(sort($array)== TRUE){

echo"数组排序成功!";

print_r($array);

}else{

echo"数组排序失败";

}

//输出:数组排序成功!Array ( [0] => a [1] => b [2] => c [3] => d )

?>

4.2       对数组逆向排序

数组逆向排序应使用rsort()函数,函数运行后,使得排序数组单元从高到低重新索引。rsort()函数演示代码如下所示。

<?php

//定义一个测试用数组

$array =array(2=>"b",1=>"a",3=>"c",4=>"d");

//使用sort对数组排序

if(rsort($array)== TRUE){

echo"数组排序成功!";

print_r($array);

}else{

echo"数组排序失败";

}

//输出:数组排序成功!Array ( [0] => d [1] => c [2] => b [3] => a ) 

?>

4.3 对数组排序并保持索引关系

使用sort()或rsort()函数,虽然能对数组进行排序,但是实际应用中,有些重要的数组需要保持单元的索引关系。在排序的同时,保持数组的索引关系,可以使用asort()和arsort()函数。asort()函数是把数组按正向排序,arsort()函数把数组按逆向排序。下面演示这两个函数的使用方法,

4.4       对数组按照键名排序

使用ksort()、krsort()函数,可以对数组的键名进行排序,并且可以保持键名与值的关联。ksort()函数用于对数组的键名进行正向排序,krsort()函数用于对数组的键名进行逆向排序。下面演示这两个函数的使用方法,代码如清单所示。

清单 ksort()、krsort()函数的使用方法

<?php

//定义一个带有键名的测试用函数

$array =array("driver"=>"Tom","car"=>"tubro","speed"=>"360","level"=>6);

//使用ksort()对数组按键名排序

ksort($array);

echo"显示排序后的数组:";

print_r($array);

echo"<br>";

//使用krsort()函数按键名逆向排序

krsort($array);

echo"显示排序后的数组:";

print_r($array);

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值