常用的数组函数(二)
时间:2018年8月24号 天气:晴
1.编程 : 数组与字符串,变量之间的转换:
实例
<?php /** * 数组与字符串、变量之间的转换 */ header("Content-type:text/html; charset=utf-8"); //1、list把数组中的元素转为变量,用在索引数组上。 list($name,$course,$grade)=['杨过','Java','100']; echo $name,'学习的课程是:',$course,'考了,',$grade,'分'.'<hr>'; //extract($arr,$flag);将关联数组转为变量 $arr=[ 'id'=>10, 'name'=>'麻花腾', 'position'=>'CEO', 'firm'=>'腾讯' ]; echo '总共生成了:', var_export(extract($arr),true),'个变量。'.'<hr>'; echo '我的id是:'.$id.',名字是:'.$name.'现在在'.$firm.'担任'.$position.'<hr>'; //compact()将变量转为关联数组 $id = 02; $name = 'JackMa'; $firm = '阿里巴巴'; $position = 'CEO'; $arr1 = compact('id','name','firm','position'); echo '<pre>', var_export($arr1,true); //explode()将字符串转为数组。 $string='html,css,java,Jquery'; echo '<pre>', var_export(explode(',',$string),true).'<hr>'; //5.implode($glue, $arr) $arr = ['首页','公司新闻','公司新闻','联系我们']; //echo var_export(implode($arr),true),'<br>'; echo var_export(implode('|',$arr),true),'<br>'; //添加<a>转为导航 echo var_export('<a href="#">'.implode('</a>|<a href="#">',$arr).'</a>'),'<br>';
运行实例 »
点击 "运行实例" 按钮查看在线实例
2.编程: 数组元素的回调处理
实例
<?php /** * 数组元素的回调处理 * 1:典型情况下 callback 接受两个参数。array 参数的值作为第一个,键名作为第二个。 */ header('Content-type:text/html; charset=utf-8'); //1、array_filter()回调处理数组中的每个元素的值,但仅返回结果为true的值。 $arr1 = ['','php',null,'css',false,0,'java','MySql']; echo '<pre>'; echo '共有',count($arr1),',个元素','<br>'; echo var_export($arr1,true),'<hr>'; $arr2= array_filter($arr1); echo '共有',count($arr2),',个元素','<br>'; echo var_export($arr2,true),'<hr>'; // $arr3 = ['html','css','java','php','']; $arr4 =array_filter($arr3,function ($values) { return $values !==''; }); echo var_export($arr4,true).'<hr>'; //array_work()对数组的每个键和值处理。 $arr5=[ 'name'=>'php', 'number' =>'17819185963' ]; //echo var_export($arr5,true); array_walk($arr5, function ($key,$value){ echo $key .' ===> '. $value.'<br>'; }); echo "<hr>"; //回调第三个参数的用法 array_walk($arr5, function ($value,$key,$name){ //这个的注意,两个都得用exit() if($value !=$name){ exit('无权查看'); }else{ exit($key.':'.$value); } }, 'php1');
运行实例 »
点击 "运行实例" 按钮查看在线实例
3.编程: 用for()循环来遍历关联数组
实例
<?php /** *for()循环来遍历关联数组 */ header('Content-type:text/html;charset=utf-8'); $arr1 = ['PHP简介','PHP入门','PHP进阶','PHP高级','PHP大牛']; //先遍历索引 echo count($arr1).'<br>'; for($i=0;$i<count($arr1);$i++){ echo '<pre>'.print_r($arr1[$i],true); } echo '<hr>'; //遍历关联数组 $arr2 = ['id'=>'01','name'=>'PHP','salary'=>'$99999','position'=>'PHP is the first language on the webWorld']; echo count($arr2).'<br>'; for($n=0;$n<count($arr2);$n++){ $a=key($arr2); $b=current($arr2); next($arr2); echo $a.' --> '.$b.'<br>'; }
运行实例 »
点击 "运行实例" 按钮查看在线实例
总结:
这节课学到了:
1、数组的分类创建与遍历:分类【索引、关联】,创建【逐个创建(先创建空数组,以追加的方式加入),整体创建】,遍历【list(),each(),foreach(),for(),while()】。
2、数组常用的键值操作。
3、数组与变量和字符串之间的转换:【list() 把数组中的元素转为变量: 用在索引数组上;2. extract($arr, $flag): 关联数组转为变量;3.compact(): 将变量转为关联数组;4.explode():将字符串转换数组;5.implode($glue, $arr)值之间添加样式】
4、数组的切割与填充【array_slice():从数组中指定位置,返回指定数量的元素;array_chunk(): 将大数组分割为小数组;array_pad(),将数组用指定的数组填充到指定的长度】
5、数组的一些回调处理【1. array_filter():回调处理数组中的每个元素的值,仅返回结果为true的元素;2. array_walk():对数组中每个元素的键和值进行处理(典型情况下 callback 接受两个参数。array 参数的值作为第一个,键名作为第二个)】
6、for()循环来遍历关联数组