本课讲解了数组遍历及数组的常规操作,数组与变量字符串之间的转换,回调处理
实例数组与字符串,变量之间的转换
<meta charset="UTF-8"> <?php echo "<h2 style='color: green'>一、数组与字符串变量之间的转换</h2>"; echo '<hr>'; //索引数组创建 echo "<h4>1.1 索引数组创建</h4>"; $info=array("小红","小明","小黄","小蓝","小黑"); $info=["小红","小明","小黄","小蓝","小黑"]; print_r($info); echo '<br>'; print_r($info2); //关联数组创建方式 echo "<h4>1.2 关联数组创建</h4>"; $info3=array("name"=>"小红","age"=>"18","sex"=>"女","add"=>"广东省东莞市"); $info4=["name"=>"小红","age"=>"18","sex"=>"女","add"=>"广东省东莞市"]; print_r($info3); echo '<br>'; print_r($info4); echo "<h4>1.3 list将数组转换为字符串,用着索引数组上</h4>"; //list把数组中的元素转换为变量; list($name,$age,$sex,$add)=['小花','18','女','广东省广州市']; echo '名称:',$name,'年龄:',$age,'性别:',$sex,'联系地址:',$add; echo "<h4>1.4 extract将数组转换为变量,用在关联数组上</h4>"; $info5=extract($info3);//返回变量的数量 echo '共生成了:',$info5,'个变量.','我的名称是:', $name,',年龄:', $age,',性别:', $sex,',联系地址:', $add;//返回变量的数量 echo "<h4>1.5 compact将变量转换为数组</h4>"; $name='朱老师'; $age=18; $sex='男'; $add='安徽合肥'; $arr=compact('name','age','sex','add'); echo var_export($arr); echo "<h4>1.6 explode将字符串转换数组</h4>"; $info='手机,电脑,洗衣机,冰箱,显示器,办公桌'; echo var_export(explode(',',$info)).'<br>'; //将所有字符转换为数组 echo var_export(explode(',',$info,3)).'<br>'; echo var_export(explode(',',$info,-3)).'<br>';//-3代表在生成的数组中从尾部删除3个 echo "<h4>1.7 implode 将所数组拼接为字符串</h4>"; $head=['首 页','公司简介','公司业务','企业文化','加入我们','联系我们']; echo var_export(implode($head)).'<br>'; //将所数组中值拼接为字符串 echo var_export(implode(' |',$head)).'<br>';//添加分割线 echo var_export('<a href="">'.implode('</a> |<a href="">',$head).'</a>');
运行实例 »
点击 "运行实例" 按钮查看在线实例
实例数组元素的回调处理
<meta charset="UTF-8"> <?php echo '<pre>'; echo "<h2 style='color: green'>二、数组元素的回调处理</h2>"; echo '<hr>'; //有参数 function add($a,$b,$c,$d,$e,$f){ return $a+$b+$c+$d+$e+$f; } //add(1,2,3,4,5,6); echo add(1,2,3,4,5,6).'<br>';//参数为数值 echo '<br>'; function add1($a,$b,$c,$d,$e,$f){ return $a.$b.$c.$d.$e.$f; } echo add1('www','.php','.cn','是','最好的PHP编程','学习网站').'<br>';//参数为字符串 echo '<br>'; echo '<h2>1 array_filter($arr,$cllback);用一个回调处理数组中的每个元素,仅返回true的元素,非常适合删除数组中的空元素</h2>'; //将一个函数作为参数进传递就是回调,回调使用 callable //1.array_filter($arr,$cllback);用一个回调处理数组中的每个元素,仅返回true的元素,非常适合删除数组中的空元素 $arr1=[12,0,456,40,'php',false,true,'中文网']; //echo count($arr1);//数组中元素的总数 echo '原始数组中,共有'.count($arr1).'个元素,'.var_export($arr1,true).'<br>'; echo '<br>'; $arr2=array_filter($arr1); echo '过滤后数组中,共有'.count($arr2).'个元素,'.var_export($arr2,true).'<br>';//使用array_filter()函数,默认返回为true的元素 echo '<br>'; //常规标准函数 function hello(){ return 'abc'; } hello(); //匿名函数,当参数来使用 $hello=function (){ return 'abc'; }; echo $hello(),'<br>'; echo '<br>'; //传入一个回调:匿名函数() $arr3=['html','css','javascript','php']; //使用回调删除css php $arr4=array_filter($arr3,function ($value){ return (($value !=='css') && ($value !=='php'));//返回不等于css 和php的元素 }); echo var_export($arr4).'<br>'; echo '<br>'; //2.array_walk($arr,$callback()) //对数组中每个元素的键和值进行处理 echo '<h2>2 array_walk($arr,$callback()) //对数组中每个元素的键和值进行处理</h2>'; $arr5=['name'=>'熊成浩','age'=>'30','sex'=>'男','add'=>'广东省广州市','email'=>'xiongchenghao@bonsaii.com']; echo var_export($arr5).'<br>'; echo '<br>'; //格式化 array_walk($arr5,function ($val,$key){ echo $key,'<a style="color:red">==</a>',$val,'<br>'; }); echo '<br>'; //回调的第三个参数的用法 array_walk($arr5,function ($value,$key,$name) { //如果当前的用户名称是:熊成浩 , 则授权查看,否则拒绝 if ($value != $name){ die("您传入的用户名称是 $name ,无权限查看"); } else { die($key.'=='.$value.'<br>'); } },'熊');
运行实例 »
点击 "运行实例" 按钮查看在线实例
实例用for()循环来遍历关联数组
<meta charset="UTF-8"> <?php echo '<pre>'; echo "<h2 style='color: green'>三、用for()循环来遍历关联数组</h2>"; echo '<hr>'; $arr=['name'=>'熊成浩','age'=>'30','sex'=>'男','add'=>'广东省广州市','email'=>'xiongchenghao@bonsaii.com']; var_export($arr); echo '<hr>'; echo '<h2>2 使用for循环遍历关联数组</h2>'; for ($i=0;$i<count($arr);$i++) //for 数组总数 count($arr) { echo key($arr),'=>',current($arr),'<br/>';//获取当前元素的键和值key($arry) current($arr) next($arr); //下移指针 } echo '<hr>'; echo '<h2>2 使用while循环遍历关联数组</h2>'; reset($arr); while (list($key,$value)=each($arr)){ echo $key.'---'.$value.'<br>'; }
运行实例 »
点击 "运行实例" 按钮查看在线实例
总结:
数组分为二类:索引数组,关联数组
for while foreach的遍历
reset() 复位指针 next() 下移指针 end() 移到最后
key(数组) 获取当前元素的键 current(数组) 获取当前元素的值
print_r($arr, $bool) var_dump($var1,$var2....) var_export($arr,true),输出的就是字符串表示: 就是创建这个数组的php语句
list() 把数组中的元素转为变量: 用在索引数组上
extract($arr, $flag): 关联数组转为变量
compact(): 将变量转为关联数组
explode():将字符串转换数组
implode($glue, $arr); 将一维数组的值转化为字符串
array_slice():从数组中指定位置,返回指定数量的元素
array_chunk(): 将大数组分割为小数组
array_pad(),将数组用指定的数组填充到指定的长度
array_filter():回调处理数组中的每个元素的值,仅返回结果为true的元素
array_walk():对数组中每个元素的键和值进行处理
array_merge():合并多个数组,相同键名互相覆盖