PHP学习记录之数组函数_php实例_脚本之家,用法深

数组

本文实例汇报了GO语言映射(Map)用法。共享给大家供咱们参谋。具体如下:

php中的数组是三个平稳映射,映射是生机勃勃种把values关联到keys的品种,数组能够接收放肆数量用逗号分隔符的键值对。

炫目是豆蔻梢头种内置的数据布局,用来保存键值对的冬天集中。

数组的介绍

(1)映射的始建

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

make ( map [KeyType] ValueType, initialCapacity )

数组的创导

make ( map [KeyType] ValueType )

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

map [KeyType ] ValueType {}

键名类型的自行调换

map [KeyType ] ValueType { key1 : value1, key2: value2, ... , keyN : valueN}

$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是数组输出专用函数

正如,用4种艺术分别创建数组,个中第大器晚成种和第三种的界别在于,有未有钦定初阶容积,可是使用的时候则不需求在乎那么些,因为map的原形决定了,大器晚成旦容积远远不够,它会活动扩大容积:

透过range火速创造

复制代码 代码如下:

//range()快速创建下标连续的索引数组///* * range()函数 * array range(mixed $start, mixed $limit[, number $step=1]) * 描述:建立一个包含指定范围单元的,且下标连续的索引数组 * start:序列的第一个值 * limit:序列结束于limit的值 * step:如果给出了step的值,它将被作为单元之间的步进值,如果未指定,默认为1 * * 补充: * string chr:将数字作为ASCII转成成字符 * int ord:输出字符的ASCII */$arr = range; //Array([0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5)$arr = range;print_r; //Array([0] => a [1] => b [2] => c)echo chr, "n"; //Zecho ord, "n"; //122//compact()快速创建关联数组/* * compact()函数 * array compact(mixed $varname[, mixed $...]) * 描述:建立一个数组,包括变量名和它们的值 * * 补充: * list:将数组中的值赋给一些变量 */$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;list = array;

func test1() {
    map1 := make(map[string]string, 5)
    map2 := make(map[string]string)
    map3 := map[string]string{}
    map4 := map[string]string{"a": "1", "b": "2", "c": "3"}
    fmt.Println(map1, map2, map3, map4)
}

echo "a的值为{$a}, b的值为{$b}, c的值为{$c}", "n"; //a的值为1, b的值为2, c的值为3

出口如下:

由此const和define(卡塔尔(英语:State of Qatar)定义常量数组

map[] map[] map[] map[c:3 a:1 b:2]

const ARR1 = [1, 2, 3]; //const定义常量数组print_r; //Array([0] => 1 [1] => 2 [2] => 3)define; //define; //Array([0] => 1 [1] => 2 [2] => 3)//运用场景:自定义文件上传错误数组信息define('CUSTOM_UPLOAD_ERRORS', [ 'ext_error' => '文件扩展名不符合规范', 'maxsize' => '上传文件大小不符合规范']);//遇到文件上传时扩展名不符合规范的时候,可调用报错

(2)映射的填写和遍历

echo CUSTOM_UPLOAD_ERRORS['ext_error'], "n"; //文件扩张名不相符标准

复制代码 代码如下:

数组的应用

func test2() {
    map1 := make(map[string]string)
    map1["a"] = "1"
    map1["b"] = "2"
    map1["c"] = "3"
    for key, value := range map1 {
        fmt.Printf("%s->%-10s", key, value)
    }
}

/* * => 通过键名找到对应的键值 * 增、删、改、查 *///查找:通过键名找到对应的键值$arr1 = ['a', 'b', 'c', 'd'];$arr2 = [ 'username' => '王昭', 'sex' => '男'];echo '下标为2的值:', $arr1[2], "n"; //下标为2的值:cecho '用户名为:',$arr2['username'], "n"; //用户名为:王昭$arr3 = [ //二位数组的查找 ['id'=>'1001', 'name'=>'张三'], ['id'=>'1002', 'name'=>'李四']];echo '下标为0的姓名:', $arr3[0]['name'], "n"; //下标为0的姓名:张三//添加$arr = ['a', 'b', 'c'];$arr[] = 'd'; //添加元素,不指定键名,键名为数字$arr['username'] = '王昭'; //添加元素,指定键名,键名为字符串print_r; //Array([0] => a [1] => b [2] => c [3] => d [username] => 王昭)//修改$arr = ['a', 'b', 'c', 'username'=>'王昭'];$arr['username'] = '张三';echo $arr['username'], "n"; //张三//删除unset; //删除键名为'username'的键值对print_r; //Array([0] => a [1] => b [2] => c)unset;print_r; //Arrayunset; //释放数组//print_r; //输出错误 Notice: Undefined variable

如上,数组的填充使用 map[key] = value 的主意,遍历映射的时候,每生龙活虎项都回去2个值,键和值。结果如下:

其它类型调换到数组

a->1    b->2    c->3   

/* * 如果将一个值转换为数组,将得到一个仅有一个元素的数组,其下标为0,该元素即为此标量的值; * 对象可以转换为数组,但是注意尽量避免这样转换,因为会导致一些意想不到的效果。 * 注意:null转换成数组是空数组[] * * 临时转换 * $var * * 永久转换 * settype */$str = 'abc';$arr = $str;print_r; //Arraysettype;print_r; //Array

(3)映射的追寻、校正和删除

数组运算符

复制代码 代码如下:

/* * 常用的数组运算符: * +:合并数组,如果键名相同,只展示左边数组的键值对 * ==:比较数组的键名和对应的键值是否相同,如果相同返回true,否则返回false * ===:既要比较键名和对应的键值及键值类型是否相同,而且顺序也要相同 * !=:比较数组的键名和对应的键值是否不相同 * !==:比较数组的键名和对应的键值和键值类型是否不相同,或者顺序不相同 * <>:和!=效果一样 * * */$arr1 = [1, 2, 3];$arr2 = ['a', 'b', 'c'];$arr3 = ['username'=>'张三', 'age'=>12];$arr4 = [10=>10, 11=>11];$arrSum1 = $arr1 + $arr2; //如果键名相同,只会展示左边数组的键值对$arrSum2 = $arr1 + $arr3; //+与数组是索引数组或者是关联数组无关$arrSum3 = $arr1 + $arr3 + $arr4; //如果后面的数组的键名和前面的数组的键名重复,不会覆盖,会展示前面数组对应的键值print_r; //Array([0] => 1 [1] => 2 [2] => 3)print_r; //Array([0] => 1 [1] => 2 [2] => 3 [username] => 张三 [age] => 12)print_r; //Array([0] => 1 [1] => 2 [2] => 3 [username] => 张三 [age] => 12 [10] => 10 [11] => 11)$arr5 = ['1'=>1, 'b'=>2, 'c'=>3];$arr6 = ['b'=>2, '1'=>1, 'c'=>3];$arr7 = [1=>1, 'b'=>2, 'c'=>3];var_dump; //boolvar_dump; //boolvar_dump; //boolvar_dump; //boolvar_dump; //bool

func test3() {
    map4 := map[string]string{"a": "1", "b": "2", "c": "3"}
    val, exist := map4["a"]
    val2, exist2 := map4["d"]
    fmt.Printf("%v,%vn", exist, val)
    fmt.Printf("%v,%vn", exist2, val2)

总结

    map4["a"] = "8" //改过映射和丰硕映射没什么差别
    fmt.Printf("%vn", map4)

上述所述是小编给我们介绍的PHP学习记录之数组函数,希望对大家有所扶植,借使大家有其余疑问请给小编留言,小编会及时回复大家的。在那也特别感激大家对台本之家网址的支撑!

    fmt.Println("删除b:")
    delete(map4, "b")
    fmt.Printf("%v", map4)
}

map钦赐key取对应的value时,能够钦点重临七个值,第三个是相应的value,第一个是一个bool,表示是不是有值。如上,“a”确定有值,"b"确定没值。

改善映射和丰盛映射的操作没什么差距,若内定的键子虚乌有则创造,否则,校订之。

去除则是行使go的放松权利函数delete,输出如下:

true,1
false,
map[a:8 b:2 c:3]
删除b:
map[a:8 c:3]

指望本文所述对大家的GO语言程序设计有所支持。

你恐怕感兴趣的篇章:

  • Golang学习笔记(四):array、slice、map
  • 明白Golang中的数组(array)、切条(slice)和map
  • Go语言字典(map卡塔尔用法实例解析【创造,填充,遍历,查找,改正,删除】
  • Go语言用map完结饭店作用的措施
  • go语言map字典删除操作的必定要经过之处
  • Go语言map字典用法实例解析
  • Go语言map用法实例分析
  • Go语言入门教程之Arrays、Slices、Maps、Range操作简明总括
  • Go语言中的Array、Slice、Map和Set使用详整
  • golang针对map的论断,删除操作示例

本文由365bet体育在线官网发布于网络工程,转载请注明出处:PHP学习记录之数组函数_php实例_脚本之家,用法深

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。