<?php
/*
* 数组是一组数据的集合。数组的每个实体包括键和值2部分组成。
* 键:可以用数字、字符串或者数字和字符串的组合作键来标识数组中相应的值
* 值:也被称为数组中的元素,可以是任意数据类型,甚至是混合类型
* 1、数组类型
* 2、数组创建
* 3、数组输出
* 4、数组构造
* 5、数组遍历
* 6、全局数组
* 7、数组函数
*/
/*
* 数组类型
* 类型1:数字索引数组--用数字作为键
* 类型2:关联数组--使用字符串或者数字和字符串混合为键
*/
//举例略掉,下面数组创建中有描述
/*
* 数组创建
*/
//通过PHP函数创建数组
//函数array
//语法1:array array_name(key1=>value1,key2=>value2,...) 其中,key为字符串或数字键值
//语法2:array array_name(value1,value2,...) 默认键值为数字且从0开始
$array1=array('first'=>'再','second'=>'见','third'=>'!');
print_r($array1);
echo '<br>';
echo $array1['first'];
echo '<br>';
$array2=array('妥','妥','的');
print_r($array2);
echo '<br>';
echo $array2[2];
echo '<p>';
//通过数组标识符'[]'创建数组
$array3[0]="古";
$array3[1]="剑";
$array3[2]="奇";
$array3[3]="谭";
print_r($array3);
echo '<p>';
/*
* 数组输出
* 情况1:只输出数组中某一个元素。print/echo/print_r,其中print_r此时作用与print相同,建议直接使用print_r
* 情况2:输出数组结构中所有元素。print_r/var_dump都可以
* 注意1:print_r函数,语法:bool print_r(mixed expr);参数为数组时,则按照键值和元素的顺序显示该数组中的所有元素
* 注意2:var_dump函数,语法:void var_dump(mixed expr[,mixed expr[,...]]);可以输出数组或对象,而且还附带输出元素个数
* 每个字符串的长度,并且能够以缩进方式输出数组或对象的结构
*/
$array5=array('f1'=>'忠','f2'=>'奸','f3'=>'人');
print_r($array5);
echo '<br>';
var_dump($array5);
echo '<p>';
/*
* 数组的构造
* 一维数组:数组元素为变量时
* 二维数组:数组元素又为一维数组时
* ....
*
*/
//一维数组举例省略
//二维数组,与java二维数组相比,灵活性高
$array_x_y=array(
'x1'=>array('PHP','Java','html'),
'x2'=>array('y1'=>'css','y2'=>'c++'),
'x3'=>array(0=>'JSP','one'=>'Android','two'=>'Mac')
);
print_r($array_x_y);
echo '<p>';
/*
* 数组遍历
* 方法1:foreach结构:实质并非操作数组本身,而是数组的一个备份
* 方法2:for语句:前提是需要利用count函数获取数组元素中匀速的数目,然后将它作为for的循环条件
*
*/
$web_name=array('vip','taobao','jingdong');
$web_url=array('www.vip.com','www.taobao.com','www.jingdong.com');
//foreach语法:foreach(array_name as $key=>$value)
foreach($web_name as $key=>$value)
{
echo $value.'--'.$web_url[$key].'<br><br>';
}
echo '<p>';
//for语句
for($i=0;$i<count($web_name);$i++)
{
echo $web_name[$i].'--'.$web_url[$i].'<br><br>';
}
echo '<p>';
/*
* 全局数组:PHP提供了一些全局数组,可以获得大量与环境有关的信息
* 1、$_SERVER[],是由Web服务器创建的信息,应用该数组可以获取服务器和客户配置以及当前请求信息
* 2、$_GET[]和$_POST[]:分别用来接受GET和POST方法传递到当前页面的数据
* 3、$_COOKIE[]:存储通过http cookie传递到脚本的信息
* 4、$_ENV[]:用于提供与服务器有关的信息
* 5、$_REQUEST[]:获取GET方法、POST方法和http cookie传递到脚本的信息。当我们不知道通过什么方法提交数据时,
* 那么就可以通过该方法获取提交到当前页面的数据
* 6、$_SESSION[]:用于获取会话变量相关的信息
* 7、$_FILES[]:一个多维的全局数组,用于获取通过POST方法上传文件时的相关信息。如果为单件上传,则该数组为二维数组,
* 如果为多文件上传,则该数组为三维数组
*/
//列举1~2个例子,其他的略过
echo '当前服务器IP地址:'.$_SERVER['SERVER_ADDR'].'<br><br>';
echo '客户端IP地址:'.$_SERVER['REMOTE_ADDR'].'<br><br>';
echo '<p>';
/*
* 数组函数:一些关于数组实用功能操作的封装成的函数模块
* 1、统计数组元素个数:int count()
* 2、向数组中添加元素:int array_push()
* 3、获取数组中最后一个元素:array_pop()
* 4、删除数组中重复元素:array_unique()
* 5、获取数组中指定元素的键名:array_search()和array_keys()
*
*/
// 统计数组元素个数
//语法:int count(array array_name[,int mode])
//参数array_name指定数组对象,参数mode为可选参数,默认值为0,如果mode的值设置为COUNT_RECURSIVE(或1),count()
//函数检测多维数组,该函数返回数组元素个数
$array_count=array('数码','家电','电脑');
echo count($array_count);
echo '<p>';
//向数组中添加元素:将传入的元素添加到某个数组的末尾
//语法:int array_push(array array_name,mixed var[,mixed...])
//参数array_name为操作数组对象,参数var为要加入数组的值,返回值为数组新的元素总数
$array_put=array('文学','科幻');
print_r($array_put);
echo '<br>';
echo array_push($array_put,'哲学','政治');
echo '<br>';
print_r($array_put);
echo '<p>';
//获取数组中最后一个元素:获取并返回数组中的最后一个元素,并将数组的长度减1
//语法:mixed array_pop(array array_name)
//array_name为目标数组,返回值为取到的数组最后一个元素
$array_last=array_pop($array_put);
echo $array_last;
echo '<p>';
//删除数组中重复元素:将数组元素的值作为字符串排序,然后对每个值只保留第一个键名,
//忽略所有后面的键名,即删除数组中重复的元素
//语法:array array_unique(array array)
//参数array为操作数组,返回值为处理后不含重复元素的数组
$array_repeat=array('a','a','c','d','a');
print_r($array_repeat);
echo '<br>';
$result=array_unique($array_repeat);
print_r($result);
echo '<p>';
//获取数组中指定元素的键名
//array_search函数:可以获取数组中指定元素的键名。语法:mixed array_search(mixed needle,array haystack[,bool strict])
//needle指定在数组中要搜索的值,haystack指定被搜索的数组,strict为可选参数,如果为true,还会在haystack检查needle的类型
//······
//array_keys函数:获取数组中重复元素的所有键名
//语法:array array_keys(array array[,mixed search_value[,bool strict]])
//参数array为目标数组,search_value可选参数,可以指定只返回该值的所有键名..
$array_sea=array('核桃','山楂','柑橘');
$key_name=array_search('山楂',$array_sea);
echo $key_name;
echo '<br>';
$array_key=array('蜘蛛侠','超人','钢铁侠','超人');
$key_names=array_keys($array_key,'超人');
print_r($key_names);
?>
PHP数组介绍与使用
最新推荐文章于 2021-03-11 13:23:43 发布