PHP 自学教程之自定义函数及数组

2023-10-26



一、自定义函数

自定义函数就是我们自己定义的函数,在PHP中自定义函数格式如下:

function funname(arg1, arg2, arg3......){

//TODO

return values;

}

下面举一个按值传递函数

<?php  
    function fun($m, $n){  
      if($m==0 || $n==0){  
           return 0;  
       }else{  
          $a=$m*$n;  
         return $a;  
       }  
   }  
     
  $p=2;  
    $h=3;  
    echo $p."*".$h."=".fun($p,$h);  
?>  
下面再举一个可选参数的函数
<?php  
/* 
  function fun($m, $n){ 
        if($m==0 || $n==0){ 
          return 0; 
      }else{ 
           $a=$m*$n; 
          return $a; 
     } 
  } 
  
   $p=2; 
  $h=3; 
  echo $p."*".$h."=".fun($p,$h); */  
   
    
   function fun($m, $n=1, $x=2){  
      $a=$m*$n*$x;  
     return $a;  
   }  
    
   $p=2;  
  echo fun($p)."<br>";          // 2*1*2 = 4  
   echo fun($p, 3)."<br>";       // 2*3*2 = 12  
  echo fun($p, 3, 3)."<br>";    // 2*3*3 = 18  
?>  


再来看看自定义函数引用传递


<?php  
   /*   
 function fun($m, $n){ 
      if($m==0 || $n==0){ 
           return 0; 
      }else{ 
          $a=$m*$n; 
          return $a; 
     } 
   } 
    
  $p=2; 
 $h=3; 
  echo $p."*".$h."=".fun($p,$h);  
    */  
     
  /* 
 function fun($m, $n=1, $x=2){ 
       $a=$m*$n*$x; 
      return $a; 
    } 
   
 $p=2; 
   echo fun($p)."<br>";          // 2*1*2 = 4 
  echo fun($p, 3)."<br>";       // 2*3*2 = 12 
   echo fun($p, 3, 3)."<br>";    // 2*3*3 = 18 
  */  
     
  function fun(&$n){  
       $n=$n*$n;  
  }  
   $p=2;  
    fun($p);  
   echo $p;  
?>  

二、数组定义赋值

1、数组基本写作格式

简单形式:array(值1, 值2, 值3, .......)

array("aa", 12, true, 2.2, "test", 50); //通过数组下标获得数据

完整形式:array(键1=>值1, 键2=>值2, ......)

array("title"=>"aa", "age"=>20);  //只能通过键名获得数据

2、创建数组的方式

//第一种  
$arr1=array(11, 22, 33, "44");  
//第二种  
$arr2=array('a'=>'11', 'b'=>'22');  
//第三种  
$arr3[0]='20';  
07.$arr3[1]='30';  

三、数组操作

1、修改

$arr=array(11, 22, 33, 44);

$arr[0]=55;  //数组变为$arr=array(55, 22, 33, 44);

2、删除

$arr=array(11, 22, 33, 44);

unset($arr[0]);    //数组变为$arr=array(22, 33, 44);

3、使用

$arr=array(11, 22, 33, 44);

echo $arr[0];

$arr=array('a'=>11, 'b'=>22, 'c'=>33, 'd'=>44);

echo $arr['b']];

4、遍历

$arr=array('a'=>11, 'b'=>22, 'c'=>33, 'd'=>44);

foreach($arr as $value){ //无键名

echo $value."<br>";

}

foreach($arr as $id=>$value){  //输出键和值

echo $id."__".$value."<br>";

}

四、二维数组

$arr=array(array("1","11","111"), array("2","22","222"));

echo $arr[1][2];

五、数组函数

(1)array_change_key_case(array, case)

array:必需,数组。

case:可选,CASE_LOWER(默认值,小写字母返回数组的键),CASE_UPPER(大写字母返回数组的键)

作用:将数组的所有的 KEY 都转换为大写或小写。




<?php  
  $a=array("a"=>"Cat","b"=>"Dog","c"=>"Horse");  
  print_r(array_change_key_case($a,CASE_UPPER));  
?>   
结果:Array ( [A] => Cat [B] => Dog [C] => Horse )

(2)array_chunk(array,size,preserve_key)

array:必需。

size:必需,规定每个新数组包括多少元素。

preserve_key:可选,true(保留键名),false(新索引)

作用:把一个数组分成新的数组块。

<?php  
 //array_chunk(array,size,preserve_key)  
    
    $a1=array("a"=>"Cat","b"=>"Dog","c"=>"Horse","d"=>"Cow");  
    print_r(array_chunk($a1,2));  
    
    $a2=array("a"=>"Cat","b"=>"Dog","c"=>"Horse","d"=>"Cow");  
   print_r(array_chunk($a2,2,true));  
      
?>   


结果:

Array ( [0] => Array ( [0] => Cat [1] => Dog ) [1] => Array ( [0] => Horse [1] => Cow ) ) 
Array ( [0] => Array ( [a] => Cat [b] => Dog ) [1] => Array ( [c] => Horse [d] => Cow ) )

.......

像这样的函数很多,可以在用的时候再查,列表如下(php代表第一次出现版本)

函数 描述 PHP
array() 创建数组。 3
array_change_key_case() 返回其键均为大写或小写的数组。 4
array_chunk() 把一个数组分割为新的数组块。 4
array_combine() 通过合并两个数组来创建一个新数组。 5
array_count_values() 用于统计数组中所有值出现的次数。 4
array_diff() 返回两个数组的差集数组。 4
array_diff_assoc() 比较键名和键值,并返回两个数组的差集数组。 4
array_diff_key() 比较键名,并返回两个数组的差集数组。 5
array_diff_uassoc() 通过用户提供的回调函数做索引检查来计算数组的差集。 5
array_diff_ukey() 用回调函数对键名比较计算数组的差集。 5
array_fill() 用给定的值填充数组。 4
array_filter() 用回调函数过滤数组中的元素。 4
array_flip() 交换数组中的键和值。 4
array_intersect() 计算数组的交集。 4
array_intersect_assoc() 比较键名和键值,并返回两个数组的交集数组。 4
array_intersect_key() 使用键名比较计算数组的交集。 5
array_intersect_uassoc() 带索引检查计算数组的交集,用回调函数比较索引。 5
array_intersect_ukey() 用回调函数比较键名来计算数组的交集。 5
array_key_exists() 检查给定的键名或索引是否存在于数组中。 4
array_keys() 返回数组中所有的键名。 4
array_map() 将回调函数作用到给定数组的单元上。 4
array_merge() 把一个或多个数组合并为一个数组。 4
array_merge_recursive() 递归地合并一个或多个数组。 4
array_multisort() 对多个数组或多维数组进行排序。 4
array_pad() 用值将数组填补到指定长度。 4
array_pop() 将数组最后一个单元弹出(出栈)。 4
array_product() 计算数组中所有值的乘积。 5
array_push() 将一个或多个单元(元素)压入数组的末尾(入栈)。 4
array_rand() 从数组中随机选出一个或多个元素,并返回。 4
array_reduce() 用回调函数迭代地将数组简化为单一的值。 4
array_reverse() 将原数组中的元素顺序翻转,创建新的数组并返回。 4
array_search() 在数组中搜索给定的值,如果成功则返回相应的键名。 4
array_shift() 删除数组中的第一个元素,并返回被删除元素的值。 4
array_slice() 在数组中根据条件取出一段值,并返回。 4
array_splice() 把数组中的一部分去掉并用其它值取代。 4
array_sum() 计算数组中所有值的和。 4
array_udiff() 用回调函数比较数据来计算数组的差集。 5
array_udiff_assoc() 带索引检查计算数组的差集,用回调函数比较数据。 5
array_udiff_uassoc() 带索引检查计算数组的差集,用回调函数比较数据和索引。 5
array_uintersect() 计算数组的交集,用回调函数比较数据。 5
array_uintersect_assoc() 带索引检查计算数组的交集,用回调函数比较数据。 5
array_uintersect_uassoc() 带索引检查计算数组的交集,用回调函数比较数据和索引。 5
array_unique() 删除数组中重复的值。 4
array_unshift() 在数组开头插入一个或多个元素。 4
array_values() 返回数组中所有的值。 4
array_walk() 对数组中的每个成员应用用户函数。 3
array_walk_recursive() 对数组中的每个成员递归地应用用户函数。 5
arsort() 对数组进行逆向排序并保持索引关系。 3
asort() 对数组进行排序并保持索引关系。 3
compact() 建立一个数组,包括变量名和它们的值。 4
count() 计算数组中的元素数目或对象中的属性个数。 3
current() 返回数组中的当前元素。 3
each() 返回数组中当前的键/值对并将数组指针向前移动一步。 3
end() 将数组的内部指针指向最后一个元素。 3
extract() 从数组中将变量导入到当前的符号表。 3
in_array() 检查数组中是否存在指定的值。 4
key() 从关联数组中取得键名。 3
krsort() 对数组按照键名逆向排序。 3
ksort() 对数组按照键名排序。 3
list() 把数组中的值赋给一些变量。 3
natcasesort() 用“自然排序”算法对数组进行不区分大小写字母的排序。 4
natsort() 用“自然排序”算法对数组排序。 4
next() 将数组中的内部指针向前移动一位。 3
pos() current() 的别名。 3
prev() 将数组的内部指针倒回一位。 3
range() 建立一个包含指定范围的元素的数组。 3
reset() 将数组的内部指针指向第一个元素。 3
rsort() 对数组逆向排序。 3
shuffle() 把数组中的元素按随机顺序重新排列。 3
sizeof() count() 的别名。 3
sort() 对数组排序。 3
uasort() 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联。 3
uksort() 使用用户自定义的比较函数对数组中的键名进行排序。 3
usort() 使用用户自定义的比较函数对数组中的值进行排序。 3



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 自学教程之自定义函数及数组 的相关文章

  • Spdlog库编译/交叉编译

    1 只包含头文件 速度很快 无需依赖第三方库 支持跨平台 Linux Windows on 32 64 bits 支持多线程 可对日志文件进行循环输出 可每日生成日志文件 可支持控制台日志输出 可选的异步日志 可定义日志格式 2 获取spd
  • centos7下opencv3.4.1 的安装和编译全解

    centos7下opencv3 4 1 的安装和编译全解 一 下载和安装 1 下载网址 https opencv org 注意系统版本 2 linux下依赖库安装 正式安装opencv之前 需要安装好opencv编译的依赖包 列举如下 1
  • 【Pandas】修改Pandas的行或列的名字(重命名)

    pandas DataFrame rename 使用函数 DataFrame rename mapper None index None columns None axis None copy True inplace False leve
  • 编译Android 2.3源码错误总结

    虽然版本2 3很老了 但是这是在完全新的Ubuntu上面编译的 可以使我们更加熟练 1 host C acp lt build tools acp acp c
  • BP神经网络在数据预测上的应用

    用BP神经网络做数据预测有两种形式 1 根据自身已有的数据预测未来的数据 比如 根据2000 2012年已知GDP的值预测2013年GDP的值 求解 用2000 2001 2002的值作为输入 2003作为输出 然后以此类推 2001 20
  • DEDE后台添加新变量出现:Request var not allow!的解决办法

    论坛上很多人都反馈说在后台添加新变量的时候会出现 Request var not allow 的BUG错误 本文主要就是介绍如何去解决这个问题 下面看具体操纵 在DEDE根目录打开 include common inc php 文件 查找到
  • pycharm 2019.2 安装包失败

    简介 最近使用学生账号注册了pycharm 貌似全家桶都可以免费用了 就升级了pycharm到最新版 但是在使用包管理 安装包的时候出错了 提示没有匹配的版本 下面还提示一个 trusted host pypi douban com 右下角
  • es搜索 核心指标_ElasticSearch核心知识总结(一)es的六种搜索方式和数据分析

    es的六种搜索方式 query string search GET ecommerce product search 查询所有数据 took 4 耗费几毫秒 timed out false 是否超时 shards 数据拆分成5个分片 对所有
  • Qt编写软件注册功能

    一 软件目的 应项目需求 需要为编写的软件添加一层保护 防止滥用 二 软件环境 Qt5 9 Windows 主要加密算法 MD5 MD5简单介绍 MD5是一种不可逆的加密算法 类似计算hash值 不同的数据字符无论长短 经过MD5计算后都会
  • Pip快速离线安装pytorch-gpu

    Pip快速离线安装pytorch gpu 1小节讲解涉及的基本概念 读者也可直接从2小节开始 1 安装pythorch涉及的基本组件概念 1 1 显卡驱动Driver 常识概念 此处略过 1 2 CUDA CUDA Compute Unif
  • 二维邮局选址问题-带权中位数

    算法设计练习作业 邮局选址问题 将自己写的分享 有问题请指正 希望共同学习 关于邮局选址问题的理论知识就不赘述了 网上有讲解的 include
  • Python 入门基础

    第一个Python程序之打印 Hello World print Hello World 字符串定义的三种方式 type 用了检测数据类型 单引号定义法 使用单引号进行包围 name 测试 print type name 双引号定义法 na
  • Mysql审核查询平台Archery部署

    目录 1 Archery产品介绍 2 基于docker搭建Archery 2 1 系统环境 2 2 安装 Docker 2 2 1 安装 Docker Compose 2 2 2 下载Archery 2 2 3 安装并启动 2 2 4 表结
  • jdk8

    文章目录 1 场景再现 2 Supplier
  • 【计蒜客】2n皇后问题

    思路 此题与n皇后问题十分类似 也是利用递归回溯求解 这题放2n个皇后 我采取的做法是 先放n个黑皇后 再放n个白皇后 具体实现见代码 一些细节方面我都标注出来了 并且做了详细解释 代码 include

随机推荐