主要内容:
简介
常用的方法
循环遍历数组
PHP 预定义数组
数组的处理函数
数组
PHP 由于是弱类型的语言, 他的变量类型是可以自由变换的, 他的数组很自由, 长度是可以动态增加的.
他的索引默认为数字 0 开始, 另外有一个很强大的地方就是, 他的数组可以和字典一样, 通过 (key-value) 键值对模式来存储(厉害哦)
- <?php
- // 声明数组, 并初始化
- $xiaoli=array("小李",25,"男","google 公司","xiaoli@php.com");
- // 输出数组
- print_r($xiaoli);
- echo "<br/>";
- $xiaobai[2]="小白";
- $xiaobai[]=20;
- $xiaobai[]="女";
- $xiaobai[]="baidu 公司";
- $xiaobai[]="xiaobai@php.com";
- // 输出数组
- print_r($xiaobai);
- echo "<br/>";
- $bai["姓名"]="小白";
- $bai['年龄']=20;
- $bai['性别']="女";
- $bai['公司']="baidu 公司";
- $bai['邮箱']="xiaobai@php.com";
- // 输出数组
- print_r($bai);
- ?>
输出
- Array ( [0] => 小李 [1] => 25 [2] => 男 [3] => google 公司 [4] => xiaoli@php.com )
- Array ( [2] => 小白 [3] => 20 [4] => 女 [5] => baidu 公司 [6] => xiaobai@php.com )
- Array ( [姓名] => 小白 [年龄] => 20 [性别] => 女 [公司] => baidu 公司 [邮箱] => xiaobai@php.com )
使用数字作为 key 的叫做 "索引数组", 使用其他作为 key 的叫做 "关联数组", 可以使用 array 在初始的时候就是默认使用索引, 也可以制定为关联数组.
- <?php
- // 声明 索引数组, 并初始化
- $xiaoli=array("小李",25,"男","google 公司","xiaoli@php.com");
- // 输出数组
- print_r($xiaoli);
- echo "<br/>";
- // 声明 关联数组, 并初始化
- $xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google 公司","xiaoli@php.com");
- // 输出数组
- print_r($xiaoli);
- ?>
输出
- Array ( [0] => 小李 [1] => 25 [2] => 男 [3] => google 公司 [4] => xiaoli@php.com )
- Array ( [姓名] => 小李 [年龄] => 25 [性别] => 男 [0] => google 公司 [1] => xiaoli@php.com )
key 也可以是变量, 这样更灵活
- <?php
- // 声明 索引数组, 并初始化
- $xiaoli=array("小李",25,"男","google 公司","xiaoli@php.com");
- // 输出数组
- print_r($xiaoli);
- echo "<br/>";
- // 声明 关联数组, 并初始化
- $xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google 公司","xiaoli@php.com");
- // 输出数组
- print_r($xiaoli);
- $a="姓名";
- echo "<br/>";
- echo $xiaoli[$a];
- $a="年龄";
- echo "<br/>";
- echo $xiaoli[$a];
- ?>
输出
- Array ( [0] => 小李 [1] => 25 [2] => 男 [3] => google 公司 [4] => xiaoli@php.com )
- Array ( [姓名] => 小李 [年龄] => 25 [性别] => 男 [0] => google 公司 [1] => xiaoli@php.com )
小李
25
常用的方法
each($arr)返回数组中当前指针的键值对
print_r($arr)输出数组所有元素
var_dump($arr)输出数组的所有元素以及类型信息
list($a,$b)=array("小李",25,"男","google 公司")这里一次性给多个变量赋值,$a="小李",$b=25;
循环遍历数组
这里有 3 中方法来遍历数字
- for($i=0;$i<count($arr);$i++){}
- foreach($arr as $x=>$y){}
- while($v=each($arr)){}
- foreach.php
- <?php
- // 声明 关联数组, 并初始化
- $xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google 公司","xiaoli@php.com");
- foreach($xiaoli as $a=>$b){
- //each($xiaoli);
- echo "数组中 $a 元素是 $b <br/>";
- }
- ?>
输出
数组中 姓名 元素是 小李
数组中 年龄 元素是 25
数组中 性别 元素是 男
数组中 0 元素是 google 公司
数组中 1 元素是 xiaoli@php.com
貌似 for 循环只能遍历纯索引数组
- for.php
- <?php
- // 声明 关联数组, 并初始化
- $xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google 公司","xiaoli@php.com");
- for($i=0;$i<count($xiaoli);$i++){
- //each($xiaoli);
- echo "数组中".$i."元素是".$xiaoli[$i]."<br/>";
- }
- ?>
输出
数组中 0 元素是 google 公司
数组中 1 元素是 xiaoli@php.com
Notice: Undefined offset: 2 in C:\xampp\htdocs\demo2.php on line 7
数组中 2 元素是
Notice: Undefined offset: 3 in C:\xampp\htdocs\demo2.php on line 7
数组中 3 元素是
Notice: Undefined offset: 4 in C:\xampp\htdocs\demo2.php on line 7
数组中 4 元素是
- while_each.php
- <?php
- // 声明 关联数组, 并初始化
- $xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google 公司","xiaoli@php.com");
- while($v=each($xiaoli)){
- echo "数组中".$v["key"]."元素是".$v["value"]."<br/>";
- }
- ?>
输出
数组中 姓名元素是 小李
数组中 年龄元素是 25
数组中 性别元素是 男
数组中 0 元素是 google 公司
数组中 1 元素是 xiaoli@php.com
PHP 预定义数组
- $GLOBALS(包含了全部变量的全局组合数组)
- $_SERVER(头信息, 路径, 脚本位置等信息的数组)
- $_POST
- $_GET
- $_COOKIE
- $_SESSION
- $_REQUEST(默认情况下包含了 $_POST,$_GET,$_COOKIE 的数组)
数组的处理函数
array_sum($arr)返回数组中所有 value 的值的和, 字符串当做 0
in_array($key,$arr)如果 $key 在 $arr 数组中, 返回 true, 否则返回 false
array_count_values($arr)用来统计所有值出现的次数
- array_sum.php
- <?php
- // 声明 关联数组, 并初始化
- $xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google 公司","xiaoli@php.com");
- $a=array_sum($xiaoli);
- echo $a;
- ?>
输出
- 25
- in_array.php
- <?php
- // 声明 关联数组, 并初始化
- $xiaoli=array("姓名"=>"小李","年龄"=>25,"性别"=>"男","google 公司","xiaoli@php.com");
- findkey("小李",$xiaoli);
- echo "<br/>";
- findkey("小小",$xiaoli);
- // 在数组 xiaoli 中找 key
- function findkey($key,$xiaoli){
- if(in_array($key,$xiaoli)){
- echo "fund".$key;
- }else{
- echo "not fund".$key;
- }
- }
- ?>
输出
fund 小李
not fund 小小
- array_count_values.php
- <?php
- // 声明 关联数组, 并初始化
- $xiaoli=array("姓名"=>"小李","姓名 1"=>"小李","姓名 2"=>"小李","姓名 3"=>"小李",
- "年龄"=>25,25,25,25,25,666,1,666,666,
- "性别"=>"男","google 公司","xiaoli@php.com");
- print_r(array_count_values($xiaoli));
- ?>
输出
Array ( [小李] => 4 [25] => 5 [666] => 3 [1] => 1 [男] => 1 [google 公司] => 1 [xiaoli@php.com] => 1 )
ok 数组的学习就到这里.
来源: http://www.bubuko.com/infodetail-2716214.html