abstract:本章主要学习了数组的遍历,已经数组的常用函数,以及数组与字符串之间的互相转换等,通过学习,对本章学习到的函数和方法进行练习实战,代码如下:<?php //region 下划线 用于每次输出时分割 function hrLine(){ echo '<hr>'; } //endr
本章主要学习了数组的遍历,已经数组的常用函数,以及数组与字符串之间的互相转换等,通过学习,对本章学习到的函数和方法进行练习实战,代码如下:
<?php //region 下划线 用于每次输出时分割 function hrLine(){ echo '<hr>'; } //endregion //region 数组和变量定义 //定义一维数组$array,用于后面方法的调用 $array=[]; $array['name']='1Pong'; $array['address']='广东省汕头市'; $array['sex']='男'; $array['language']='php'; //echo '<pre>' , var_export($array); //$array[将数组的键名存到变量中 list($name,$address,$sex,$language)=[$array['name'],$array['address'],$array['sex'],$array['language']]; //定义多维数组 $arrayMuti $arrayMuti=[ ['id'=>1, 'name'=>'小鹏', 'sex'=>'男', 'salary'=>10000], ['id'=>2, 'name'=>'鹏哥', 'sex'=>'男', 'salary'=>20000], ['id'=>3, 'name'=>'小芸', 'sex'=>'女', 'salary'=>8000], ['id'=>4, 'name'=>'芸姐', 'sex'=>'女', 'salary'=>9000], ]; //导航数组 $arrNews = ['首页','新闻中心','产品信息','联系我们']; //定义重复数组 $arrUnUnique=[100,20,50,60,30,50,20,100]; //endregion //region 循环遍历输出数组数据 $reValues=''; $reValues='当前数组键值对为:'; foreach ($array as $key=>$value){ $reValues .= $key . '=>' . $value . ';'; } echo rtrim($reValues,';');//清除最后一个分号 //endregion hrLine(); //region array_values():获取数组元素的值,返回索引数组 echo '$array数组转换成索引数组后为:' . var_export (array_values($array),true); //endregion hrLine(); //region array_column():多维数组指定的列值,返回新的数组。 echo '$arrayMuti的name列和salary列组成的数组为:' , var_export(array_column($arrayMuti,'salary','name'),true); //endregion hrLine(); //region array_keys():返回键名所组成的数组 echo '$array的所有键名为:' , var_export(array_keys($array),true); //endregion hrLine(); //region in_array()判断某个值是否在数组中 echo in_array('1Pong',$array)?'1Pong在数组$array中':'1Pong不在数组$array中'; //endregion hrLine(); //region array_search()查询指定数组中的值,返回键名 echo '$array中1Pong对应的键名是:', var_export(array_search('1Pong',$array)); //endregion hrLine(); //region array_key_exists() 判断数组是否存在键名 echo '$array中' , (array_key_exists('name',$array) ? '存在':'不存在') , '键名为:name'; //endregion hrLine(); //region array_flip() 数组键值互换 echo '$array键值互换后的数组是:' , var_export(array_flip($array),true); //endregion hrLine(); //region array_reverse()数组反转 echo '$array数组反转后的数组是:' , var_export(array_reverse($array),true); //endregion hrLine(); //region extract() 数组转变量 echo '$array数组转成变量后,共返回' , extract($array) ,'个变量,'; echo '变量的值分别是:name=>' , $name , ';address=>', $address , ';sex=>', $sex , ';language=>', $language , ';'; //endregion hrLine(); //region compact() 将变量拼接成数组 $array=compact('name','address','sex','language'); echo '把转换的字符串重新赋值给数组,$array重新赋值为:',var_export($array,true); //endregion hrLine(); //region explode() 将字符串根据标识切割成数组 $str="sql server,mysql,oracle"; echo 'sql server,mysql,oracle切割后组成的数组是:' , var_export(explode(',',$str),true); //endregion hrLine(); //region implode() 将数组转字符串 echo '$arrNews通过|拼接成的字符串为:' , implode('|',$arrNews); //endregion hrLine(); //region array_slice() 返回切割后的数组 echo '$arrNews的第二和第三个元素所组成的数组是:' , var_export(array_slice($arrNews,1,2,true),true); //endregion hrLine(); // region array_splice() 移除或替换数组中的元素 echo '$arrNews数组是:' , var_export($arrNews,true) , '<br>'; echo '$arrNews移除掉的元素是:', var_export(array_splice($arrNews,0,1),true), '<br>'; echo '$arrNews数组变成:' , var_export($arrNews,true) , '<br>'; echo '替换$arrNews数组的第二和第三个值,被替换的值为:' , var_export(array_splice($arrNews,1,2,['公告栏','关于我们']),true) ,'<br>'; echo '$arrNews数组变成:' , var_export($arrNews,true) , '<br>'; //还原导航数组 $arrNews = ['首页','新闻中心','产品信息','联系我们']; //endregion hrLine(); //region array_chunk()将数组拆分成若干类型的小数组 echo '将$array拆分成两个数组,拆分后的数组为:' , var_export(array_chunk($array,2,true),true); //endregion hrLine(); //region array_pad()将数组用指定的数据,填充到指定的长度 //将$arrNews填充到5列,并用"关于我们"填充 echo '为$arrNews增加一列"关于我们",增加后的数组为:' , var_export(array_pad($arrNews, 5,'关于我们'),true); //endregion hrLine(); //region array_push() 入栈 array_pop() 出栈 array_unshift() 头部插入 array_shift() 头部删除 echo '$arrNews现有数组是:' , var_export($arrNews,true) , '<br>'; array_pop($arrNews); //出栈 echo '$arrNews出栈一次,出栈后的数组是' , var_export($arrNews,true) , '<br>'; array_push($arrNews,['关于我们','联系我们']);//入栈 echo '把关于我们和联系我们压入数组$arrNews,入栈后的数组是' , var_export($arrNews,true) , '<br>'; array_unshift($arrNews,'欢迎');//头部入队 echo '$arrNews入队一次,入队后的数组是' , var_export($arrNews,true) , '<br>'; array_shift($arrNews);//出队 echo '$arrNews出队一次,出队后的数组是' , var_export($arrNews,true) , '<br>'; //endregion hrLine(); //region array_filter()回调处理每个元素,仅返回结果为true的元素 echo '$array为:' , var_export($array,true) , '<br>'; $filter= array_filter($array,function($key){ return $key!='sex'; },ARRAY_FILTER_USE_KEY); echo '去除性别列,返回结果为:' , var_export($filter,true); //endregion hrLine(); //region array_walk()对数组中的每个元素的键值对进行处理 echo '$arrayMuti数组为:' , var_export($arrayMuti,true) , '<br>'; $walk=array_walk($array,function($value,$key,$name){ if($value=='1Pong') { echo '1Pong对应的数据为:' , $key . ':' . $value; } },'1Pong1'); //endregion hrLine(); //region uksort() 保留键值对对应关系的自定义排序 echo '$array数组为:', var_export($array,true) , '<br>'; uksort($array,function($value1,$value2){ $first=substr($value1,1,1); $second=substr($value2,1,1); return strcmp($first,$second); }); echo '根据键名的第二个字母排序后,$array数组为:', var_export($array,true); //endregion hrLine(); //region array_unique() 去除数组中的重复值 echo '$arrUnUnique数组为:', var_export($arrUnUnique,true) , '<br>'; echo '$arrUnUnique数组去除重复值后为:', var_export(array_unique($arrUnUnique),true); //endregion hrLine(); //region array_rand() 随机获取数组中的元素 $keys=array_rand($array,3); foreach ($keys as $key){ $res[$key]=$array[$key]; } echo '随机获取$array中的三个元素,并保留键名,组成的数组为' , var_export($res,true); //endregion hrLine(); //region shuffle()将数组重新打乱,并覆盖数组 shuffle($array);//打乱数组 echo '$array重新打乱后,变成', var_export($array,true); //endregion hrLine(); //region array_merge()将两个数组合并 echo '将$array和$arrNews合并,合并后变成:' , var_export(array_merge($array,$arrNews),true); //endregion
效果如下:
Correcting teacher:天蓬老师Correction time:2018-12-03 17:15:32
Teacher's summary:你的hrLine()函数是个亮点, 不过函数名的命名不太好,建议用连接线