跟我学习php数组常用函数-上篇
对于php的初学者,也许会对它大量的函数不清楚该学习哪些。我在这列举了一些大家实际当中可能与使用到的,供您参考
1) array_map ( callable $callback , array $arr1 [, array $... ] )
callback(回调函数),接受一个函数函数作用:将arr1的参数顺序的传递给前面的回调函数
- 回调函数有参时:
/*例1*/<?php function cube ( $n ){ return( $n * $n * $n );} $a = array( 1 , 2 , 3 , 4 , 5 ); $b = array_map ( "cube" , $a ); print_r ( $b );/** 输出 Array ( [0] => 1 [1] => 8 [2] => 27 [3] => 64 [4] => 125 )**/ ?>
- 回调函数无参时:
<?php/*例2*//*将多个数组进行合并*/$a = array( 1 , 2 , 3 , 4 , 5 ); $b = array( "one" , "two" , "three" , "four" , "five" ); $c = array( "uno" , "dos" , "tres" , "cuatro" , "cinco" ); $d = array_map ( null , $a , $b , $c ); print_r ( $d );/*输出Array( [0] => Array ( [0] => 1 [1] => one [2] => uno ) [1] => Array ( [0] => 2 [1] => two [2] => dos ) [2] => Array ( [0] => 3 [1] => three [2] => tres ) [3] => Array ( [0] => 4 [1] => four [2] => cuatro ) [4] => Array ( [0] => 5 [1] => five [2] => cinco ))*/ ?>
2) range ( mixed $start , mixed $limit [, number $step = 1 ] )
step表示间隔值,不写默认为1
/*例1,产生一组数字*/$nums = range(1, 5);print_r($nums);/*输出:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )*/$nums = range(1, 5, 2);print_r($nums);/*输出:Array ( [0] => 1 [1] => 3 [2] => 5 )*/
/*例2,产生一组字母数组*/$array = range('a','f');print_r($array);/*输出:Array ( [0] => a [1] => b [2] => c [3] => d [4] => e [5] => f )*/$array = array('a', 'f', 2);print_r($array);/*输出:print_r($array);/*输出:Array ( [0] => a [1] => c [2] => e )*/
3) array_merge ( array $array1 [, array $... ] )
array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
/*解释:如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。*/$array1 = array(1, 2, 3, 4, 5);$array2 = array(1, 2, 8, 9);$array3 = array_merge($array1, $array2);print_r($array3);/*输出:Array( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 1 [6] => 2 [7] => 8 [8] => 9)*/
4) array_merge_recursive ( array $array1 [, array $... ] ) 递归地合并一个或多个数组
如果输入的数组中有相同的字符串键名,则这些值会被合并到一个数组中去,这将递归下去,因此如果一个值本身是一个数组,本函数将按照相应的条目把它合并为另一个数组。然而,如果数组具有相同的数组键名,后一个值将不会覆盖原来的值,而是附加到后面。
会根据键名相同一层一层的将值进行合并
/*例1*/$ar1 = array("color" => array("favorite" => "red"), 5);$ar2 = array(10, "color" => array("favorite" => array('a'=>"red"), "blue"));$result = array_merge_recursive($ar1, $ar2);print_r($result);/*输出:Array( [color] => Array ( [favorite] => Array ( [0] => red [a] => red 重点 ) [0] => blue ) [0] => 5 [1] => 10)*/
/*例2*/$ar1 = array("color" => array("favorite" => "red"), 5);$ar2 = array(10, "color" => array("favorite" =>"red", "blue"));$result = array_merge_recursive($ar1, $ar2);print_r($result);/*输出:Array( [color] => Array ( [favorite] => Array ( [0] => red [1] => red 重点 ) [0] => blue ) [0] => 5 [1] => 10)*/
5) array_pad ( array $input , int $pad_size , mixed $pad_value ) 给数组增加值到指定的长度,原数组不会改变
<?php$input = array(12, 10, 9);$result = array_pad($input, 5, 0);// result is array(12, 10, 9, 0, 0)$result = array_pad($input, -7, -1);// result is array(-1, -1, -1, -1, 12, 10, 9)$result = array_pad($input, 2, "noop");// not padded/*如果size<数组的长度,将不会有变化*/?>
6) array_pop ( array &$array ) 移出最后一个元素,原数组会改变
array_pop() 弹出并返回 array 数组的最后一个单元,并将数组 array 的长度减一。 如果 array 为空(或者不是数组)将返回 NULL 。 此外如果被调用不是一个数则会产生一个 Warning。
<?php$stack = array("orange", "banana", "apple", "raspberry");$fruit = array_pop($stack);print_r($stack);?>/*输出Array( [0] => orange [1] => banana [2] => apple)*/
7) array_shift() 将数组开头的单元移出数组,原数组会改变, 使用此函数后会重置(reset())array 指针。
array_shift() 将 array 的第一个单元移出并作为结果返回,将 array 的长度减一并将所有其它单元向前移动一位。所有的数字键名将改为从零开始计数,文字键名将不变。 如果 array 为空(或者不是数组)将返回 NULL
8) int array_push ( array &$array , mixed $var [, mixed $... ] )
- array_push() 将 array 当成一个栈,并将传入的变量压入 array 的末尾。array 的长度将根据入栈变量的数目增加
- 返回处理后数组的元素个数
9) reset ( array &$array )将数组的内部指针指向第一个单元
- reset() 将 array 的内部指针倒回到第一个单元并返回第一个数组单元的值。
- 数组为空返回false
10) end ( array &$array )
参数array,该数组是通过引用(&)传递的,因为它会被这个函数修改。 这意味着你必须传入一个真正的变量,而不是函数返回的数组,因为只有真正的变量才能以引用传递。
- end() 将 array 的内部指针移动到最后一个单元并返回其值。
- 数组为空返回false
<?phpfuncation back(){ $arr = array(1, 2, 3); return $arr;}/*上面引用传递的意思请注意看*/$num = end(back()); //错误!,因为该参数是引用传递$array = back();$num = end($array); //正确
对于引用传递,如果不将一个函数的返回值赋给一个变量的话,在内存中是不会真正的开辟以个单独的空间内存的。而引用传递的参数则必须需要一个有真实存在的内存的,因此,$array = back(),这样会开辟一片内存给$array变量

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸
