php数组函数

PHP学习之路之记录

寵の児 提交于 2019-12-02 21:18:29
一、基础知识: 1、变量区分大小写 2、只能包含字母、数字和下划线,并且不能以数字开头,不能包含空格 3、变量在第一次赋值的时候被创建 变量作用域: 1、local 局部变量 2、global 全局变量 3、static 静态变量 4、parameter 参数 函数内变量若要在函数外输出,则需要在函数内的变量前加global,并且不能直接赋值,需先声明。 全局变量若要在函数内使用,需要在函数内先声明为全局变量,即加global,再进行变量操作。 全局变量数组:所有的全局变量都存储在一个名为$GLOBAL[index]的数组中,index指的是变量名。这个数组可以在函数内访问。 静态变量:函数执行完后,变量通常会被删除,若要在函数执行完后被保留,static就是做这个事情的。在第一次声明变量时使用static关键字。 参数作用域:参数是通调用代码,将值传递给函数的局部变量。 echo 和print的区别 echo一次能输出多个字符串、变量 print一次只能输出一个变量、字符串。返回值总为1。 提示 :echo速度比print快,echo无返回值,print返回值为1。 数据类型:php有7种类型。 string、int、float、boolean、array、object、null。 字符串、整型、浮点型、布尔型、数组、对象、空值。 有了变量,当然就有常量。 常量:define(

PHP常用函数大全

梦想的初衷 提交于 2019-12-02 18:58:28
字符串函数 strlen:获取字符串长度,字节长度 substr_count 某字符串出现的次数 substr:字符串截取,获取字符串(按照字节进行截取) mb_strlenmb_substr strchr:与substr相似,从指定位置截取一直到最后 strrchr(获取文件后缀名):与strchr一样,只是从右边开始查找字符 strtolower:所有的字符都小写(针对英文字母) strtoupper:所有的字符都大写 strrev:字符串反转(只能反转英文:英文存储只有一个字节),按照字节进行反转 strpos:从字符串中找对应字符出现的位置(数字下标),从最左边开始找 strrpos:与strpos一样,只是从字符串的右边开始找 trim:去掉函数两边的字符,默认是空格 str_split 函数把字符串分割到数组中。 chunk_split() 函数把字符串分割为一连串更小的部分 str_repeat("Shanghai",5);把字符串 "Shanghai " 重复 5 次 str_replace('\\', '/', dirname(__DIR__))); 替换 ucfirst 首字母大写 时间日期函数 time:得到当前时间的时间戳(整型:从格林威治时间1970年1月1日0时0分0秒开始)秒数 date:时间序列化函数,将指定的时间戳转换成规定时间日期的显示格式

php创建生成数组的相关函数

安稳与你 提交于 2019-12-02 09:14:13
php中和数组创建生成的函数有很多,用于定义数组的函数array(),数组合并函数array_combine(),还有array_fill(),array_fill_keys(),range()等等。 要创建一个数组可以用下面的简单快捷方法: 1 $arr = [1, 2, 3, 4, 5]; 还可以用array()函数来创建一个数组: 1 $fruits = array ( 2 "fruits" => array("a" => "orange", "b" => "banana", "c" => "apple"), 3 "numbers" => array(1, 2, 3, 4, 5, 6), 4 "holes" => array("first", 5 => "second", "third") 5 ); 这个函数可以创建索引数组,关联数组,或者二者杂合的数组。 array_combine()函数用一个数组的值作键,一个数组的值作值,也可以生成索引或是关联数组: 1 $arr1 = [ 1, 2, 3, 4 ]; 2 $arr2 = [ 1, 2, 3, 4 ]; 3 var_dump( array_combine( $arr1, $arr2 ) ); 4 // array(4) { 5 // [1] => 6 // int(1) 7 // [2] => 8 // int(2) 9

变量覆盖漏洞

我与影子孤独终老i 提交于 2019-12-02 06:48:07
变量覆盖指的是用我们自定义的参数值替换程序原有的变量值,一般变量覆盖漏洞需要结合程序的其它功能来实现完整的攻击。经常导致变量覆盖漏洞场景有:$$,extract()函数,parse_str()函数,import_request_variables()使用不当,开启了全局变量注册等。 常见的变量覆盖 全局变量覆盖 register_globals的意思就是注册为全局变量,所以当On的时候,传递过来的值会被直接的注册为全局变量直接使用,而Off的时候,我们需要到特定的数组里去得到它。 <?php //?id=1 echo "Register_globals: ".(int)ini_get("register_globals")."<br/>"; echo '$_GET["id"] :'.$_GET['id']."<br/>"; echo '$id :'.$id; ?> 当register_globals=Off的时候,下一个程序接收的时候应该用$_GET[‘id’]来接受传递过来的值; 当register_globals=On的时候,下一个程序可以直接使用 i d 来 接 受 值 , 也 可 以 用 id来接受值,也可以用 i d 来 接 受 值 , 也 可 以 用 _GET[‘id’]来接受传递过来的值。 tips:如果上面的代码中,已经对变量 i d 赋 了 初 始 值 , 比 如

php数组怎么根据其中的一个值进行排序?解决方法

一个人想着一个人 提交于 2019-12-02 05:10:00
有一个数组如下 我想对其进行一个排序,按照其“sort”的值的大小进行排序,3->4->7。 解决方法如下: 1、首先介绍php的两个方法 方法一:array_column() 返回输入数组中某个单一列的值。php版本 5.5+。 参数 描述 array 必需。规定要使用的多维数组(记录集)。 column_key 必需。需要返回值的列。 可以是索引数组的列的整数索引,或者是关联数组的列的字符串键值。 该参数也可以是 NULL,此时将返回整个数组(配合 index_key 参数来重置数组键的时候,非常有用)。 index_key 可选。用作返回数组的索引/键的列。 例子一: 1 $cmf_settings = array( 2 array ( 3 "url" => "img/20191015/5da586020fa6b.jpg", 4 "alt" => "lunbo2", 5 "href" => "https://www.baidu.com/", 6 "sort" => "7" 7 ), 8 array( 9 "url" => "img/20191018/5da9783499dec.jpg", 10 "alt" => "X1300", 11 "href" => "https://www.baidu.com/fully-automatic-pallet-wrappin/x1300

php四种基础算法:冒泡,选择,插入和快速排序法

别等时光非礼了梦想. 提交于 2019-12-02 04:32:07
许多人都说 算法是程序的核心,一个程序的好于差,关键是这个程序算法的优劣。作为一个初级phper,虽然很少接触到算法方面的东西 。但是对于冒泡排序,插入排序,选择排序,快速排序四种基本算法,我想还是要掌握的。下面是我按自己的理解,将四个方法分析一遍。 需求:分别用 冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中 的值按照从小到的顺序进行排序。 $arr(1,43,54,62,21,66,32,78,36,76,39); 1. 冒泡排序法 * 思路分析:法如其名,就是像冒泡一样,每次从数组当中 冒一个最大的数出来。 * 比如:2,4,1 // 第一次 冒出的泡是4 * 2,1,4 // 第二次 冒出的泡是 2 * 1,2,4 // 最后就变成这样 $arr=array(1,43,54,62,21,66,32,78,36,76,39); function getpao($arr) { $len=count($arr); //设置一个空数组 用来接收冒出来的泡 //该层循环控制 需要冒泡的轮数 for($i=1;$i<$len;$i++) { //该层循环用来控制每轮 冒出一个数 需要比较的次数 for($k=0;$k<$len-$i;$k++) { if($arr[$k]>$arr[$k+1]) { $tmp=$arr[$k+1]; $arr[$k+1]=$arr[$k];

php数组与数据栈相关函数

不羁的心 提交于 2019-12-02 03:21:37
php数组可以用栈的角度来操作,这其中包含了如下函数,array_pop(),array_push,array_shift(),array_unshift()。 array_pop()函数 将数组的最后一个元素移出,也就是出栈; 函数的参数只有一个就是欲操作的数组,这里是引用传值,会改变欲操作的数组; 函数返回出栈那个元素。 1 $arr = [1, 2, 3, 4]; 2 array_pop( $arr ); 3 var_dump( $arr ); 4 // array(3) { 5 // [0] => 6 // int(1) 7 // [1] => 8 // int(2) 9 // [2] => 10 // int(3) 11 // } array_push()函数 与array_pop函数执行相反的操作,从数组的末尾添加一个或多个元素,也就是入栈; 1 array_push ( array &$array , mixed $value1 [, mixed $... ] ) : int 函数参数第一个是目标数组(引用传值),接下来就是欲要入栈的值; 函数返回入栈数组的个数。 1 $arr = [1, 2, 3, 4]; 2 var_dump( array_push( $arr, 5, 6 ) ); 3 var_dump( $arr ); 4 // int(6) 5 //

PHP基础教程之数组函数大全整理

删除回忆录丶 提交于 2019-12-02 02:44:56
今天整理了一份 PHP开发中数组操作大全,包含有数组操作的基本函数、数组的分段和填充、数组与栈、数组与列队、回调函数、排序、计算、其他的数组函数共8个知识点,非常适合正在 学习PHP 的初学者,欢迎收藏打包带走。 一、数组操作的基本函数 数组的键名和值 array_values($arr); 获得数组的值 array_keys($arr); 获得数组的键名 array_flip($arr); 数组中的值与键名互换(如果有重复前面的会被后面的覆盖) in_array("apple",$arr); 在数组中检索apple array_search("apple",$arr); 在数组中检索apple ,如果存在返回键名 array_key_exists("apple",$arr); 检索给定的键名是否存在数组中 isset($arr[apple]): 检索给定的键名是否存在数组中 数组的内部指针 current($arr); 返回数组中的当前单元 pos($arr); 返回数组中的当前单元 key($arr); 返回数组中当前单元的键名 prev($arr); 将数组中的内部指针倒回一位 next($arr); 将数组中的内部指针向前移动一位 end($arr); 将数组中的内部指针指向最后一个单元 reset($arr; 将数组中的内部指针指向第一个单元 each($arr);

PHP7源码之array_unique函数分析

旧街凉风 提交于 2019-12-02 00:47:28
以下源码基于 PHP 7.3.8 array array_unique ( array $array [, int $sort_flags = SORT_STRING ] ) (PHP 4 >= 4.0.1, PHP 5, PHP 7) array_unique — 移除数组中重复的值 参数说明: array:输入的数组。 sort_flag:(可选)排序类型标记,用于修改排序行为,主要有以下值: SORT_REGULAR - 按照通常方法比较(不修改类型) SORT_NUMERIC - 按照数字形式比较 SORT_STRING - 按照字符串形式比较 SORT_LOCALE_STRING - 根据当前的本地化设置,按照字符串比较。 array_unique 函数的源代码在 /ext/standard/array.c 文件中。由于 PHP_FUNCTION(array_unique){ // code... } 篇幅过长,完整代码不在这里贴出来了,可以参见 GitHub 贴出的源代码。 定义变量 zval *array; uint32_t idx; Bucket *p; struct bucketindex *arTmp, *cmpdata, *lastkept; unsigned int i; zend_long sort_type = PHP_SORT_STRING; //

php数组指针函数

丶灬走出姿态 提交于 2019-12-01 23:46:38
数组指针函数有reset(),prev(),current(),next(),end(),key(),each() 其中reset(),prev(),current(),next(),end(),都是只与数组的值有关的函数,key()只与数组键,有关的函数,each()可以获得数组的值和键 reset()函数,参数是一个数组,引用传值,将一个数组的内部指针重置到首位,也就是数组的第一个元素所在的位置,然后返回第一个元素的值,在数组为空的情况下返回false 1 $arr = [ 1, 2 ]; 2 var_dump( reset( $arr ) ); 3 $arr = [ ]; 4 var_dump( reset( $arr ) ); 5 // int(1) 6 // bool(false) end()函数,参数是一个数组,引用传值,将一个数组的内部指针移动到数组的最后一个元素所在的位置,然后返回最后一个元素的值,在数组为空的情况下返回false 1 $arr = [ 1, 2 ]; 2 var_dump( end( $arr ) ); 3 $arr = [ ]; 4 var_dump( end( $arr ) ); 5 // int(2) 6 // bool(false) current()函数,参数是一个数组,引用传值,返回当前数组指针所指向的值,指针移动超出了数组的末尾