PHP第七课 数组的用法2

学习纲要:

1.了解数组函数

2.随机输出验证码

1.数组函数:

数组函数:

//作用:提供了很多官方写的非常有用的代码段,提高编写速度.

1.数组的键值操作函数

2.统计数组的元素和唯一性

3.使用回调函数处理数组的函数

4.数组的排序函数

5.拆分,合并,分解与结合函数

6.数组与数据结构

7.其他有用的数组处理函数

数组的键值操作函数:

1.array_values();

模拟获取key和value的值

<?php
								$arr=array("name"=>"user1","age"=>"30","sex"=>"man");

								foreach($arr as $key=>$val){
									$keys[]=$key;
									$vals[]=$val;
								}

										echo "<pre>";
										print_r($keys);
										echo "</pre>";

										echo "<hr>";
								echo "<pre>";
								print_r($vals);
								echo "</pre>";

								?>

2.array_values的使用

<?php
					$arr=array("name"=>"user1","age"=>"30","sex"=>"man");

					$keys=array_values($arr);

					echo "<pre>";
					print_r($keys);
					echo "</pre>";
					?>

array_values();//获取数组中的值

array_keys();//获取数组中的健

in_array();//检查一个值是否在数组中

array_key_exists();//检查一个键是否在数组中

array_flip();//键和值对调

array_reverse();数组中的值反转

统计数组的元素和唯一性

1.count();

2.array_count_values();//统计数组中每个值出现的次数.

3.array_unique();//删除数组中的重复

使用回调函数处理数组的函数:

1.array_filter();

<?php
			$arr=array("user1"=>70,60,80,78,34,34,34,56,78,78);

			function older($var){
				return ($var>60);

			}

			$arr2=array_filter($arr,"older");

			echo "<pre>";
			print_r($arr2);
			echo "</pre>";
			?>

2.array_map();

引用参数:

需求:数组值自加1

function show(&$arr){

foreach($arr as $key=>$val){

$arr[$key]=$val+1;

}

}

数组的排序函数

1.sort(); 升序,不保留key

2.rsort(); 降序 ,不保留key

3.asort(); 升序,保留key

4.arsort();
降序,保留key

5.ksort();根据key排序 升序

6.krsort();根据key排序 降序

7.natsort();自然数排序 升序,比如图片img2.jpg

8.natcasesort();忽略大小写 升序排列

9.multisort();多数组排序

ksort();

<?php
		$arr=array("user1"=>10,"b"=>1,"c"=>3,"d"=>30);

		$arr2=array_flip($arr);

		ksort($arr2);

		echo "<pre>";
		print_r($arr2);
		echo "</pre>";
		?>

natsort();

<?php
		$array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png");

		sort($array1);
		echo "Standard sorting\n";
		print_r($array1);

		natsort($array2);
		echo "\nNatural order sorting\n";
		print_r($array2);
		?> 

多数组排序:

<?php
		$arr=array("aaa","bbbbbbbbb","cc","ddddd");
		//需求:
		//1.按照标题长度排序
		//2.标题长度变成标题字符串的key

		//将数组中的value的长度取出,并作为一个新数组
		//strlen($val)取出字符串的长度
		foreach ($arr as  $val) {
			    $lens[]=strlen($val);
			}	

			array_multisort($lens,SORT_ASC,$arr);//对数组进行排序,根据第一个数组来排序第二个数组  SORT_ASC表示升序排序

			sort($lens);

			$arr2=array_combine($lens, $arr);//第一个数组作为第二个数组对应的key,返回一个新数组

			echo "<pre>";
			print_r($arr2);
			echo "</pre>";
		?>

拆分,合并,分解与结合函数

1.explode();

2.inplode();//join();

3.array_slice();数组的截取

4.array_splice();数组的裁剪

5.array-merge();合并多数组

6.array_combine();合并数组,两个数组,前一个数组作为key,后一个数组作为value

7.array_intersect();找出两个数组的交集

8.array_diff();找出两个数组的不同,根据第一个参数

9.array_pop();从最后弹出一个值,返回弹出值

10.array_push();从最后的位置压入一个值,返回元素的个数

11.array_shift();从洗前面的位置删除一个值

12.array_unshift();从最前的位置压入一个值

<?php

			$str="php,js,html,ces,div";
			$arr=explode(",",$str);

			echo "<pre>";
			print_r($arr);
			echo "</pre>";
			?>
</pre><span style="white-space:pre">		</span>2.inplode();将数组组合成为字符串<span style="white-space:pre">		</span><pre name="code" class="php"><?php

			$str="php,js,html,ces,div";
			$arr=explode(",",$str);

			$str2=implode("-",$arr);

			echo "<pre>";
			print_r($str2);
			echo "</pre>";
			?>
<?php

				$str="php,js,html,ces,div";
				$arr=explode(",",$str);

				$arr2=array_reverse($arr);//讲数组中的值进行倒序

				$str2=implode("-",$arr2);

				echo "<pre>";
				print_r($str2);
				echo "</pre>";
				?>

array_slice();

<?php

				//截取总是从后往前截取
			    $arr = array("aa","bb","cc","dd","ee","ff","gg");

			    $arr2 = array_slice($arr, 0,2);//表示从0的位置截取2个  aa bb
			    $arr3 = array_slice($arr, -3,2);//表示从后往前数到3的位置,开始截取2个//ee  ff

			    echo "<pre>";
			     print_r($arr3);
			     echo "</pre>"; 

				?>
不仅拆减,而且可以添加
<?php
		    $arr = array("aa","bb","cc","dd","ee","ff","gg");

		    $arr2 = array_splice($arr, 0, 3, array("hh","ii","jj","kk"));//直接取原数组的值,并将原数组进行改变,原数组为取走以后剩下的值

		    echo "<pre>";
		    print_r($arr2);
		    echo "</pre>";

		    echo "<pre>";
		    print_r($arr);
		    echo "</pre>";

			?>	

			array_merge();

			<?php

		    $a = array("aa","bb","cc");
		    $b = array("dd","ee","ff","gg");

		    $arr  = array_merge($a, $b);

		    echo "<pre>";
		    print_r($arr);
		    echo "</pre>";

			?>

其他有用的数组处理函数:

1.array_rand();//随机取一个key

2.range();//取出某个范围的数组

3.shuffle();//打乱数组的作用

4.array_sum();//计算数组内所有人的和(计算总得分)

如果计算数组的key之和,可以采用array_flip()对数组的健和值进行对调,然后就可以算出健之和.

<?php

    $arr = array("aa","bb","cc","dd","ee","ff","gg");

    //将原数组顺序随机打乱
    shuffle($arr);

    //取出数组的前3个
    $arr2= array_slice($arr, 0 , 3);

    echo "<pre>";
    print_r($arr2);
    echo "</pre>";

	?>		

//随机输出四位字符 验证码实现:

<?php

	//取出1-9 a-z A-Z的数组
    $a = range(1, 9);
    $b = range(a, z);
    $c = range(A, Z);

    //将3个数组合并
    $d = array_merge($a,$b,$c);

    //将合并后的数组打乱
    shuffle($d);

    //取合并后的前4位
    $e = array_slice($d, 0, 4);

    //将$e数组变为字符串
    $f = join("", $e);

    echo $f;

	?>	

转载请注明出处: http://blog.csdn.net/junzaivip

时间: 2024-08-28 15:12:34

PHP第七课 数组的用法2的相关文章

PHP第六课 数组的用法

学习概要: *了解基本的数组函数的使用 *懂得数组的遍历 *了解超全局数组的基本关系与使用 数组 1.数组定义和遍历 2.数组函数 数组定义: $arr=array(1,2,3);//索引数组,下标全是数字 $arr=array("name"=>"user1","age"=>"30");//关联数组,下标中包含字母 //下标只有两种,要么是字母,要是是不带双引号的数字 <?php $arr=array(&qu

第七课 进程通信

unix_c_07.txt================第七课 进程通信================一.基本概念------------1. 何为进程间通信~~~~~~~~~~~~~~~~~进程间通信(Interprocess Communication, IPC)是指两个,或多个进程之间进行数据交换的过程.2. 进程间通信分类~~~~~~~~~~~~~~~~~1) 简单进程间通信:命令行参数.环境变量.信号.文件.2) 传统进程间通信:管道(fifo/pipe).3) XSI进程间通信:

BeagleBone Black板第七课:GPIO编程控制

BBB板第七课:GPIO编程控制 在一上课我们通过IO函数做了简单的GPIO端口输出高低电平输出,实现对一个LED指示灯的点亮和关闭控制,本节将通过完整的C++程序,实现第四课Shell脚本的全部功能,实现两个LED指示灯的交替闪亮. 直接通过进入功能程序 1.实现echo 44 > export 打开端口功能 上一课简单测试中,通过手工在BBB板终端模式下打开gpio44端口可通过以下程序实现: #include <stdio.h> #define GPIO_DIR "/sy

【C语言探索之旅】 第二部分第七课:文件读写

内容简介 1.课程大纲 2.第二部分第七课: 文件读写 3.第二部分第八课预告: 动态分配 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语言编程基础知识 什么是编程? 工欲善其事,必先利其器 你的第一个程序 变量的世界 运算那点事 条件表达式 循环语句 实战:第一个C语言小游戏 函数 练习题 习作:完善第一个C语言小游戏 C语言高级技术 模块化编程 进击的指针,C语言王牌 数组 字符串 预处理 创建你自己的变量类型 文件读写

7.7-UC-第七课:进程通信

================ 第七课  进程通信 ================ 一.基本概念 ------------ 1. 何为进程间通信 ~~~~~~~~~~~~~~~~~ 进程间通信(Interprocess Communication, IPC)是指两个, 或多个进程之间进行数据交换的过程. 2. 进程间通信分类 ~~~~~~~~~~~~~~~~~ 1) 简单进程间通信:命令行参数.环境变量.信号.文件. 2) 传统进程间通信:管道(fifo/pipe). 3) XSI进程间通信

NeHe OpenGL教程 第七课:光照和键盘

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第七课:光照和键盘 光照和键盘控制: 在这一课里,我们将添加光照和键盘控制,它让程序看起来更美观. 这一课我会教您如何使用三种不同的纹理滤波方式.教您如何使用键盘来移动场景中的对象,还会教您在OpenGL场景中应用简单的光照.这一课

【C语言探索之旅】 第一部分第七课:循环语句

内容简介 1.课程大纲 2.第一部分第七课: 循环语句 3.第一部分第八课预告: 第一个C语言小游戏 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答案.还会带大家用C语言编写三个游戏. C语言编程基础知识 什么是编程? 工欲善其事,必先利其器 你的第一个程序 变量的世界 运算那点事 条件表达式 循环语句 实战:第一个C语言小游戏 函数 练习题 习作:完善第一个C语言小游戏 C语言高级技术 模块化编程 进击的指针,C语言王牌 数组 字符串 预处理 创建你自己的变量类型

shell编程(七)--- sed的用法

sed:称为流编辑器,也称为行编辑器. sed处理过程:sed读取源文件中的一行,并将其放在临时缓冲区中,这个缓冲区称为模式空间,使用相应的模式对模式空间进行处理,并将处理的结果显示到屏幕上,并不会影响源文件,处理结束后,将模式空间中的内容显示至屏幕. sed格式: sed [options] 'AddressCommand' file ... options: -n:静默模式,不显示模式空间中的内容,默认显示默认空间中的内容.常和p命令一起使用. -i:直接修改源文件的内容. -e 'Addr

第七课 对前面内容的总结

最近忙些,现在抽出个时间总结一下前面所讲的内容. 对于struts1框架的使用,个人认为不仅仅从细节方面去掌握,需要从整体把握,理解这个框架的意思,细节的东西查查资料一般都能解决,所以真个框架的理解很重要.这个同样适用于其他技术的学习,即整体把握再到细节实现,语言Java,php或是其他的,技术原理,框架上都差不多,主要的区别在于语法使用上,所以精通一门语言是十分必要的,这对于以后的工作或是学习都是非常有帮助的.一些大神经常说的话,理解和掌握思想就行,不必拘泥于细节的东西.当然啦,如果你是一个死