博客列表 >如何用自定义函数完成array_merge()函数的功能

如何用自定义函数完成array_merge()函数的功能

梁凯达的博客
梁凯达的博客原创
2018年12月19日 16:51:281409浏览

实例

<?php
 //array_merge()
 //用自定义函数实现
 //array_merge()
 //功能:合并多个或多个以上的数组
 //判断键是否为字符串,如果是字符串就保留,不是字符串就重新排序
 $arr0 = array(
  1,
  2,
  3,
  4,
  5,
  6,
 );
 $arr1 = array(
  '张1'=>'张一',
  '王1'=>'王二',
  '李1'=>'李三',
  '邓1'=>'邓四',
  '梁1'=>'梁五'
 );
 $arr2 = array(
  11,
  12,
  13, 
  14,
  15
 );
 echo '<hr />';
 //创建一个新的自定义函数
 function demo(){
 //这里用到了 func_get_arfs()函数,获取了实参里面的数值并以字符串
  var_dump(func_get_args());
 //打印出实参的所返回的数组,并以一个二维数组形式返回
  echo '<hr />';
  $new_array = func_get_args();
 //取一个变量值,并且把实参取回的二维数组存入这个变量
  $news_array = array();
 //定义一个新的变量,用于储存以下的数组遍历
 //遍历二维数组
  foreach($new_array as $key=>$value){
   foreach($value as $key_1=>$value_1){
    //此处遍历出来的$key为二维数组的键,$value为二维数组的值;
    //判断所取回的值是否为字符串数字或数字;
    if(is_numeric($key_1)){
     //默认下标赋值进去,完成功能:当下标重复时后面的默认下标替换前面的下标,数组索引的下标会根据顺序排序
     //当[]这个为空的时候,下标会按照顺序往下走,如果直接引入以上的值,则会产生后面下标会覆盖前面
     //这里要记一个知识点 is_numeric()的检测,是从上往下一条一条检测的;
     $news_array[] = $value_1;
    }else{
     //当检测结果不是字符串数字或者数字的时候,则输出以下区间
     $news_array[$key_1] = $value_1;
    }
   } 
  }
  var_dump($news_array);
 }
 //因为该功能参数并不固定,所以行参并没有设置,而实参数中输入值即可
 demo($arr0,$arr1,$arr2);

运行实例 »

点击 "运行实例" 按钮查看在线实例

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议