前言
数组就是一系列数据的集合,把一系列数据组织起来,形成一个可操作的整体。数组array是一组有序的变量,其中每个变量被称为一个元素。每个元素由一个特殊的标识符来区分,这个标识符称为键(也称为下标)。数组中的每个实体都包含两项:键和值。可以通过键值来获取相应数组元素,这些键可以是数值键或关联键。
声明数组
主要有两种方式:
- 应用array()函数声明数组。
- 字面量方式[]声明数组。
array()函数声明数组的方式如下:
array( [mixed 元素1],[mixed 元素2],...);
参数说明:
参数mixed的语法为key => value,多个参数mixed间用逗号分开,分别定义了索引和值。索引可以是字符串或数字。如果省略了索引,则会自动产生从0开始的整数索引。如果索引是整数,则下一个产生的索引将是目前最大的整数索引+1。如果定义了两个完全一样的索引,则后面一个会覆盖前一个。数组中的各数据元素的数据类型可以不同,也可以是数组类型。当mixed是数组类型时,就是二维数组。
array()函数声明例子1:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>数组的定义与使用</title>
</head>
<body>
<?php
header("Content-Type:text/html;charset=utf-8");
$arr1=array("hello","PHP","bill");
print_r($arr1);
echo "<br>".$arr1[1];
?>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
运行结果:
Arr1( [0] => hello [1] => PHP [2] => bill )
PHP
array()函数声明例子2:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"
/>
<title>数组</title>
</head>
<body>
<?php
header("Content-Type:text/html; charset=utf-8");
$arr2=array("a"=>"hello","b"=>"PHP","c"=>"bill");
print_r($arr2);
echo "<br>".$arr2["c"];
?>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
运行结果:
Arr2 ( [a] => hello [b] => PHP [c] => bill )
bill
字面量方式定义数组方式如下:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"
/>
<title>数组</title>
</head>
<body>
<?php
header("Content-Type:text/html; charset=utf-8");
$arr3[1]="hello";
$arr3["a"]="php";
$arr3["b"]="bill";
print_r($arr3);
echo "<br>".$arr3[1];
echo "<br>".$arr3["a"];
echo "<br>".$arr3["b"];
?>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
运行结果:
Arr3( [1] => hello [a] => php [b] => bill )
hello
php
bill
遍历数组
1.使用foreach结构遍历数组
遍历数组元素最常用的方法是使用foreach结构。foreach结构并非操作数组本身,而是操作数组的一个备份。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>数组</title>
</head>
<body>
<?php
header("Content-Type:text/html; charset=utf-8");
$array=array("a"=>"hello","b"=>"PHP","c"=>"bill");
foreach($array as $item){
echo $item.'<br>';
}
?>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
运行结果:
hello
PHP
bill
2.使用list()函数遍历数组
把数组中的值赋给一些变量。与array()函数类似,这不是真正的函数,而是语言结构。list()函数仅能用于数字索引的数组,且数字索引从0开始。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础</title>
</head>
<body>
<?php
header("Content-Type:text/html; charset=gb2312");
$array=array("hello","PHP","bill");
list($a,$b,$c)=$array;
echo $a;
?>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
运行结果:
hello
字符串与数组的转换
1、使用explode()函数将字符串转换成数组
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础</title>
</head>
<body>
<?php
header("Content-Type:text/html; charset=gb2312");
$str="a,b,c,d,e";
$array=explode(",",$str);
foreach($array as $item){
echo $item;
}
?>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
运行结果:
abcde
2、使用implode()函数将数组转换成一个新字符串
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础</title>
</head>
<body>
<?php
header("Content-Type:text/html; charset=gb2312");
$array=array("hello","php","bill");
$new_array=implode("-",$array);
echo $new_array;
?>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
运行结果:
hello-php-bill
统计数组元素个数
使用count()函数对数组中的元素个数进行统计。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础</title>
</head>
<body>
<?php
header("Content-Type:text/html; charset=gb2312");
$array=array("hello","php","bill");
echo count($array);
?>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
运行结果:
3
查询数组中指定元素
array_search()函数,在数组中搜索给定的值,找到后返回键名,否则返回false。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础</title>
</head>
<body>
<?php
header("Content-Type:text/html; charset=gb2312");
$array=array("a"=>"hello","b"=>"php","c"=>"bill");
echo array_search("php",$array);
?>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
运行结果:
b
获取数组中最后一个元素
通过函数array_pop()获取数组中的最后一个单元。array_pop()函数获取并返回数组的最后一个单元,并将数组的长度减1,如果数组为空(或者不是数组)将返回null。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础</title>
</head>
<body>
<?php
header("Content-Type:text/html; charset=gb2312");
$array=array("a"=>"hello","b"=>"php","c"=>"bill");
$item=array_pop($array);
echo $item.'<br>';
print_r($array);
?>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
运行结果:
bill
Array ( [a] => hello [b] => php )
向数组中添加元素
通过array_push()函数向数组中添加元素。array_push()函数将数组当成一个栈,将传入的变量压入该数组的末尾,该数组的长度将增加入栈变量的数目,返回数组新的单元总数。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础</title>
</head>
<body>
<?php
header("Content-Type:text/html; charset=gb2312");
$array=array("hello","php","bill");
array_push($array,"java","c#");
print_r($array);
?>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
运行结果:
Array ( [0] => hello [1] => php [2] => bill [3] => java [4] => c# )
删除数组中重复元素
通过array_unique()函数删除数组中重复的元素。array_unique()函数,将值作为字符串排序,然后对每个值只保留第一个键名,忽略所有后面的键名,即删除数组中重复的元素。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础</title>
</head>
<body>
<?php
header("Content-Type:text/html; charset=gb2312");
$array=array("hello","php","bill","java","php");
$result=array_unique($array);
print_r($result);
?>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
运行结果:
Array ( [0] => hello [1] => php [2] => bill [3] => java )
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础</title>
</head>
<body>
<?php
header("Content-Type:text/html; charset=gb2312");
$array[1]="hello";
$array["a"]="php";
$array["b"]="bill";
print_r($array);
echo "<br>".$array[1];
echo "<br>".$array["a"];
echo "<br>".$array["b"];
?>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
运行结果:
Array ( [1] => hello [a] => php [b] => bill )
hello
php
bill
遍历数组
1.使用foreach结构遍历数组
遍历数组元素最常用的方法是使用foreach结构。foreach结构并非操作数组本身,而是操作数组的一个备份。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础</title>
</head>
<body>
<?php
header("Content-Type:text/html; charset=gb2312");
$array=array("a"=>"hello","b"=>"PHP","c"=>"bill");
foreach($array as $item){
echo $item.'<br>';
}
?>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
运行结果:
hello
PHP
bill
2.使用list()函数遍历数组
把数组中的值赋给一些变量。与array()函数类似,这不是真正的函数,而是语言结构。list()函数仅能用于数字索引的数组,且数字索引从0开始。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础</title>
</head>
<body>
<?php
header("Content-Type:text/html; charset=gb2312");
$array=array("hello","PHP","bill");
list($a,$b,$c)=$array;
echo $a;
?>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
运行结果:
hello
字符串与数组的转换
1、使用explode()函数将字符串转换成数组
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础</title>
</head>
<body>
<?php
header("Content-Type:text/html; charset=gb2312");
$str="a,b,c,d,e";
$array=explode(",",$str);
foreach($array as $item){
echo $item;
}
?>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
运行结果:
abcde
2、使用implode()函数将数组转换成一个新字符串
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础</title>
</head>
<body>
<?php
header("Content-Type:text/html; charset=gb2312");
$array=array("hello","php","bill");
$new_array=implode("-",$array);
echo $new_array;
?>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
运行结果:
hello-php-bill
统计数组元素个数
使用count()函数对数组中的元素个数进行统计。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础</title>
</head>
<body>
<?php
header("Content-Type:text/html; charset=gb2312");
$array=array("hello","php","bill");
echo count($array);
?>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
运行结果:
3
查询数组中指定元素
array_search()函数,在数组中搜索给定的值,找到后返回键名,否则返回false。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础</title>
</head>
<body>
<?php
header("Content-Type:text/html; charset=gb2312");
$array=array("a"=>"hello","b"=>"php","c"=>"bill");
echo array_search("php",$array);
?>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
运行结果:
b
获取数组中最后一个元素
通过函数array_pop()获取数组中的最后一个单元。array_pop()函数获取并返回数组的最后一个单元,并将数组的长度减1,如果数组为空(或者不是数组)将返回null。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础</title>
</head>
<body>
<?php
header("Content-Type:text/html; charset=gb2312");
$array=array("a"=>"hello","b"=>"php","c"=>"bill");
$item=array_pop($array);
echo $item.'<br>';
print_r($array);
?>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
运行结果:
bill
Array ( [a] => hello [b] => php )
向数组中添加元素
通过array_push()函数向数组中添加元素。array_push()函数将数组当成一个栈,将传入的变量压入该数组的末尾,该数组的长度将增加入栈变量的数目,返回数组新的单元总数。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础</title>
</head>
<body>
<?php
header("Content-Type:text/html; charset=gb2312");
$array=array("hello","php","bill");
array_push($array,"java","c#");
print_r($array);
?>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
运行结果:
Array ( [0] => hello [1] => php [2] => bill [3] => java [4] => c# )
删除数组中重复元素
通过array_unique()函数删除数组中重复的元素。array_unique()函数,将值作为字符串排序,然后对每个值只保留第一个键名,忽略所有后面的键名,即删除数组中重复的元素。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"
/>
<title>PHP语言基础</title>
</head>
<body>
<?php
header("Content-Type:text/html; charset=gb2312");
$array=array("hello","php","bill","java","php");
$result=array_unique($array);
print_r($result);
?>
</body>
</html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
运行结果:
Array ( [0] => hello [1] => php [2] => bill [3] => java )