首页 > 开发 > PHP > 正文

PHP学习记录之数组函数

2024-05-04 22:43:00
字体:
来源:转载
供稿:网友

数组

php中的数组是一个有序映射,映射是一种把values关联到keys的类型,数组可以接受任意数量用逗号分隔符的键值对。

数组的介绍

/* * php中数组可以分为: * 索引数组:下标是数字 * 关联数组:下标是字符串 * 注:php中数组其实不区分索引还是关联数组,都是根据键名找到对应的值 * * php可以同时包含integer和string类型的键名 * key:可以是一个整数integer或者字符串string * value:可以是任意类型的值 * * php中的key只能是integer或这string类型,如果使用其他类型会自动转换: * 1. 包含有合法整型值的字符串会被自动转换成整型(如'8'会被转换为8,但是'08'不会被转换) * 2. 浮点数会被转换成整型,小数部分会被舍去 * 3. 布尔值会被转换成整型(true转成1,false转成0) * 4. NULL会被转换成空字符串,即'' * 5. 数组和对象不能被用为键名 * * 如果数组定义中多个单元都用了同一个键名,则只会使用最后一个,之前的值都会被覆盖 * 如果没有指定键名,且键名不都为负数,新添加的元素的键名是已有键名的最大值+1 * 如果键名都为负数,那么新添加的元素键名从0开始 * */

数组的创建

$arr1 = array(); //创建一个空数组$arr2 = array(1, 2, 3); //创建一个索引数组$arr3 = array( //创建一个关联数组  'a' => 'a_value',  'b' => 'b_value',  'c' => 'c_value');$arr4 = []; //[]用法和array()一致,同样可以创建空数组、索引数组、关联数组$arr4[] = 'a'; //利用[]对数组进行扩展,为数组新添元素

键名类型的自动转换

$arr = array(  1 => 'a',      //1   键名为integer类型,不会自动转换  'b' => 'b',     //'b'  键名为string类型,不会自动转换  '8' => 'c',     //8   包含有合法整型值的字符串会自动转换成整型  3.5 => 'd',     //3   键名为浮点数类型,会舍去小数,转换成integer类型  true => 'e',    //1   键名为布尔类型,true转成1,false转成0  null => 'f',    //''  键名为NULL类型,会转成''  'g'         //9   没有指定键名,默认为已有最大健名的值+1);$arr[] = 'h';      //10  新添加一个健值对,没有指定键名,默认为已有最大健名的值+1print_r($arr); //printf_r()是数组输出专用函数

通过range()和compact()快速创建

//range()快速创建下标连续的索引数组///* * range()函数 * array range(mixed $start, mixed $limit[, number $step=1]) * 描述:建立一个包含指定范围单元的,且下标连续的索引数组 * start:序列的第一个值 * limit:序列结束于limit的值 * step:如果给出了step的值,它将被作为单元之间的步进值,如果未指定,默认为1 * * 补充: * string chr(int $value):将数字作为ASCII转成成字符 * int ord(string $value):输出字符的ASCII */$arr = range(1, 5);print_r($arr); //Array([0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5)$arr = range('a', 'b', 'c');print_r($arr); //Array([0] => a [1] => b [2] => c)echo chr(90), "/n"; //Zecho ord('z'), "/n"; //122//compact()快速创建关联数组/* * compact()函数 * array compact(mixed $varname[, mixed $...]) * 描述:建立一个数组,包括变量名和它们的值 * * 补充: * list($var1, $var2...):将数组中的值赋给一些变量 */$username = 'zhao';$age = '22';$email = 'wangzhao_hb@126.com';$arr = compact('username', 'age', 'email'); //通过将已有变量名放在函数中快速生成关联数组//Array([username] => zhao [age] => 22 [email] => wangzhao_hb@126.com)print_r($arr);list($a, $b, $c) = array(1, 2, 3);            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表