一、概述
本节课讲述了数组、变量/字符串互换、数组回调、遍历数组的几种方法,还有一些常用处理函数。
二、作业部分
1、遍历数组和数组与变量字符串之间的转换。
实例
<?php echo '<h3>遍历数组</h3><hr>'; echo'<pre>'; $arr0 = range(10,40, 10); $arr1 = ['user' => 'mike', 'age' =>20, 'sex' =>'male', 'loca' => 'beijing']; echo '原始数组<br>',print_r($arr0,true),'<hr>'; $arr2 = ''; for($i=0; $i<count($arr0);$i++) { $arr2 .= $arr0[$i].'、'; } //echo '新数组<br>',var_export($arr2,true),'<hr>'; //错误,出来的是一个变量,不是数组,数组=数组再输出没有意义。 foreach ($arr1 as $key=>$value){ echo '[',$key,'] => ',$value,'<br>'; } echo '<hr>'; echo '<h3>数组变量互换</h3><hr>'; echo '<h6>数组->变量</h6><br>'; //list() $arry = range(10,30,10); list($no1,$no2,$no3) = $arry; echo '索引数组',$no1,$no2,$no3,'<hr>'; //extract() $arr1 = ['user' => 'mike', 'age' =>20, 'sex' =>'male', 'loca' => 'beijing']; extract($arr1,true); echo '关联数组',$user,$age,$sex,$loca,'<hr>'; echo '<h6>变量->关联数组</h6><br>'; $arr3 = compact('no1','no2','no3'); echo var_export($arr3,true); echo '<h6>字符串->索引数组</h6><br>'; $lang = 'jjjj9iiiii9sssss9pppppp'; echo var_export(explode('9',$lang)),'<br>'; echo var_export(explode('9',$lang,2)),'<br>'; echo var_export(explode('9',$lang,-1)),'<br>';
运行实例 »
点击 "运行实例" 按钮查看在线实例
结果图:
2、数组的回调
实例
<?php echo '<h3>数组回调</h3><hr>','<pre>'; $arr1 = [9,0,'', 'gg',null,false]; echo var_export($arr1,true); $arr2 = array_filter($arr1); echo var_export($arr2,true),'<br>'; $arr1 = ['html','css','javascript','',null]; $arr2 = array_filter($arr1,function ($value){ return $value !== 'css'; }); echo var_export($arr2,true),'<hr>';//自定义规则不会去除空元素 $arr1 = ['name'=>'admin','email'=>'admin@php.cn']; array_walk($arr1,function ($value,$key){ echo $key,'==>',$value,'<br>'; }); echo var_export($arr1,true),'<hr>'; array_walk($arr1,function ($value,$key,$age){ if ($value!=$age){ exit('sorry.'); } else{ exit($key.'>>>'.$value); } },'admin');
运行实例 »
点击 "运行实例" 按钮查看在线实例
结果图:
三、总结
1、$arr2 .= $arr0[$i];错误认识:出来的是一个变量,不是数组。r如果是数组,那么循环后得到数组=数组再输出没有意义,而且得不到。
2、var_filter自定义规则不会去除空元素