PHP第七课 使用方法数组2

时间:2021-10-16 09:21:37

学习平台:

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

版权声明:本文博客原创文章,博客,未经同意,不得转载。