web开发 -5-PHP基础3(数组)

3 数组

3.1 数组的创建
<?php
# 1. 简单形式
$arr1 = array("长沙","上海","重庆","山东");	
print_r($arr1);	//索引数组:索引值为整数
echo "<br/>";

# 2. 完整形式
$arr2 = array('cs'=>'长沙','sh'=>'上海','cq'=>'重庆','sd'=>'山东');
print_r($arr2);	//关联数组:索引值为字符串
echo "<br/>";

# 3. 赋值方式
$arr3 = array();	//创建空数组,可省略
$arr3[1] = '长沙';
$arr3[3] = '上海';
$arr3[] = '重庆';	//默认索引值为数组中最大索引值加1,如果数组中无正整数形式索引值,则默认为0
$arr3['sd'] = '山东';
print_r($arr3);
echo "<br/>";

# 示例
$arr4 = array("长沙",0929,true,array("天心区","雨花区","芙蓉区"));
print_r($arr4);
?>

在这里插入图片描述

3.2 操作数组元素或数组
3.2.1 访问数组元素或数组
$arr1 = array("长沙","上海","重庆","山东");
# 1 访问数组元素
$i = $arr1[0];
echo $i;
echo $arr1[0];
echo $arr1{0};
echo "<br/>";

# 2 访问所有数组元素
foreach ($arr1 as $value){
	echo $value;
}
echo "<br/>";

foreach ($arr1 as $key=>$value){
	echo $key.":".$value." ";
}
echo "<br/>";

在这里插入图片描述

3.2.2 修改数组元素或数组
$arr1 = array("长沙","上海","重庆","山东");

# 1. 修改数组元素
$arr1[0] = '0929';	//修改数组元素
unset($arr1[3]);	//删除数组元素 删除的元素下标不会被新添加的数组元素占用
$arr1[] = '0922';	//添加数组元素	
$arr1['ss'] = 'kabu';
print_r($arr1);
echo "<br/><br/>";

# 2.1 访问数组-传值访问(修改新数组,原数组不变)
$arr11 = $arr1;
$arr11[0] = "修改";
print_r($arr11);
echo "<br/>";
print_r($arr1);
echo "<br/>";

# 2.1 访问数组-传地址访问 (修改新数组,原数组改变)
$arr12 = &$arr1;
$arr12[0] = "修改";
print_r($arr11);
echo "<br/>";
print_r($arr1);
echo "<br/>";

在这里插入图片描述

3.2.3 多维数组
# 1. 使用array()函数 2.直接给数组元素赋值
$arr = array(array("玫瑰","百合","兰花"),array("banaba","apple","orange","milk"));
print_r($arr);
echo "<br/>";
echo $arr[0][0];		//访问数组元素
echo "<br/>";
$arr[0][0] = "蓝鲸";		//修改数组元素
$arr[0][3] = "茉莉";		//添加数组元素
unset($arr[1][3]);		//删除数组元素
print_r($arr);
echo "<br/>";

在这里插入图片描述

3.3 操作数组的内置函数
# 1. count()函数 : 返回数组中元素个数
//int count(array arr[,int mode])
$arr1 = array("长沙","上海","重庆","山东");
echo count($arr1);		//输出 4
$arr = array(array("玫瑰","百合","兰花"),array("banaba","apple","orange","milk"));
echo count($arr);		//输出 2 (默认一维的个数)
echo count($arr,1);	//输出 9 第一维2个,第二维7个,共9个 (mode=1:统计多维数组中所有元素个数。)

# 2. max(),min(),array_sum() 函数
// min(数组名);

# 3. array_count_values()函数 : 用于统计所有值出现的次数,并将结果返回到另一数组中
$city = array("长沙","上海","重庆","山东","上海","重庆","上海");
$tmp = array_count_values($city);
print_r($tmp);	//输出: Array ( [长沙] => 1 [上海] => 3 [重庆] => 2 [山东] => 1 )
echo "<br/>";

# 4. explode()函数 :切分字符串形成数组
//explode(separator,strint[,limit])
$str = '上海 长沙 重庆 山东';
$stoa1 = explode(" ",$str);
$stoa2 = explode(" ",$str,2);
print_r($stoa1);
echo "<br/>";
print_r($stoa2);

# 5. implode()函数 : 使用连接符将数组中的元素连接起来形成一个字符串
$grade = array('a','b','c','d');
$link = implode("--",$grade);
echo $link;

在这里插入图片描述

# 6. range() 函数 : 快速创建一个从参数start到end的数字数组或字符数组
// array range(mixed start, mixed end)
$score = range(2,5);
print_r($score);
echo "<br/>";
$score = range('D','A');
print_r($score);
echo "<br/>";

在这里插入图片描述

# 7. 排序函数 

在这里插入图片描述

函数排序依据排序规则“键值对”是否改变
sort()元素值升序
rsort()元素值降序
asort()元素值升序
arsort()元素值降序
ksort()索引值升序
krsort()索引值降序
natsort()元素值升序
natcasesort()元素值升序
shuffle()元素值随机乱序
字母全称含义
aassociation键值对不变
rreverse降序排序
kkey按照“键”进行排序
$color = array('a'=>'blue','red','green','red');
# 8. array_reverse()函数 : 对数组元素进行逆序排列,返回逆序后的新数组
$result = array_reverse($color);
print_r($color);
echo "<br/>";
print_r($result);
echo "<br/>";

# 9. array_unique()函数 : 返回没有重复值的新数组
$result2 = array_unique($color);
print_r($result2);
echo "<br/>";
# 10. 数组搜索函数
$ss1 = in_array('red',$color); //检查是否存在某个值,返回1或空
print_r($ss1);
echo "<br/>";
$ss2 = array_search('blue',$color); //检查是否存在某个值,返回索引值或空
print_r($ss2);
echo "<br/>";
$ss3 = array_key_exists(3,$color);//检查是否存在指定的键,返回1或空
print_r($ss3);
echo "<br/>";
$ss4 = array_keys($color); //返回数组中所有的键名,将其保存到一个新数组中
print_r($ss4);
echo "<br/>";
$ss5 = array_keys($color,'red');//返回某个值对应的键名
print_r($ss5);
echo "<br/>";
$ss6 = array_values($color); //返回数组中所有的值,将其保存到一个新数组中
print_r($ss6);
echo "<br/>";

在这里插入图片描述

# 11. 数组和变量之间的转换函数
# list()函数 : 用数组中的元素为一组变量赋值,从而通过数组得到一组变量(arr所有键为数字)。
// void list(var1,var2,var3,...,varn) = array arr
$str = '湖南 湖北 广东 上海';
$arr = explode(" ",$str);
print_r($arr);
echo "<br/>";
list($s1,$s2,$s3) = $arr;
echo $s1."<br/>".$s2."<br/>".$s3."<br/>";
# extract() 函数 : 利用一个数组生成一组变量,变量名Wie数组键名,变量值为数组元素的值
# compact() 函数 : 利用一组变量返回一个数组,实现和extract函数相反的功能
$citys = array("sh" => "上海","cs"=>"长沙","cq"=>"重庆","sd"=>"山东");
extract($citys);	//$sh="上海",$cs"="长沙",$cq="重庆",&sd="山东"
echo $sh."<br/>";
$newcitys = compact('sh','cs','cq','sd');
print_r($newcitys);

在这里插入图片描述

# 12. 数组指针函数
//每个PHP数组在创建之后都会建立一个“当前指针”(current),
//该指针默认指向数组的第一个元素;通过指针函数可获取指针指向的元素值或键名,
//也可移动当前指针,对数组进行遍历。
$citys = array("sh" => "上海","cs"=>"长沙","cq"=>"重庆","sd"=>"山东");
print_r($citys);
echo '<br/>';
echo key($citys).' ' .current($citys).' '.next($citys).'<br>';
echo prev($citys).' '.end($citys).' '.reset($citys).'<br>';
print_r(each($citys));
echo '<br>';
//数组的遍历
reset($citys);
do{
	echo key($citys).' => '.current($citys).' ';}
while(next($citys)!== false);	//不能写成while(nexe($citys));

在这里插入图片描述

函数功能
current()返回当前指针所指元素的“值”
key()返回当前指针所指元素的“键名”
next()移动指针使指针指向下一个元素
prev()移动指针使指针指向上一个元素
end()使指针指向最后一个元素,并返回当前指针所指元素的值
reset()使指针指向第1个元素,并返回当前指针所指元素的值
each()以数组形式返回当前指针所指的元素,该数组有4个元素,其中键名为1和value的元素值为当前元素的值,键名为0和key的元素值为当前元素的键名
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值