数组方法小结

Original 2018-12-03 17:09:48 202
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

效果如下:

图片1.jpg

图片2.jpg

Correcting teacher:天蓬老师Correction time:2018-12-03 17:15:32
Teacher's summary:你的hrLine()函数是个亮点, 不过函数名的命名不太好,建议用连接线

Release Notes

Popular Entries