首页 > 代码库 > 11-22-数组

11-22-数组

  今天开始学习PHP中数组的相关函数及概念。有些值得留意的概念类内容,其他大部分还是要通过反复练习来达到能使用就行。

  首先是数组中的指针,数组的指针默认情况下指向数组首位,通过next(arr)函数令数组指针下移一位,这就意味着这个函数一般情况下会用于循环体中以达到逐个调用数组中函数的元素值的作用,还有一点要注意的便是,当指针已经指向数组最后一位时,再次使用next就会出现问题。而与之同样有用处的还有key(arr)【获得数组当前指针元素的键】current(arr)【获得数组当前指针元素的值】还有reset(arr)【将数组的指针位置初始化】以及prev(arr)【将指针位置上移】end(arr)【将指针位置初始化到最后一个元素】

  接下来都是一些数组函数的讲解。比较重要的有

    range(‘str1‘,‘str2‘,‘num‘)

      创建一个数组,数组为从str1~str2 (例如从a~z),每跳转几个字符(2就以为着相隔一个字符输出)  {需要注意,顺序为ASCII码顺序,所以基本只用字母和数字}

    array_merge(‘arr1‘,arr2,...)

      把多个数组首位拼接为一个新数组,重名时后边替换前边的,含有数字键时将直接重新定义为索引数组。  {参数只有一个时,直接重新定义为索引数组}

      +号有同样效果,不过重复键名时,后来的键值对将直接舍弃。

    array_rand(arr1,number)

      按顺序随机抽取数组内指定数量的元素的键

    shuffle(arr)

       打乱原数组的键和元素值,直接更改原数组(地址),且重新生成索引(数字)下标

    array_keys(arr)

      获取指定数组的所有键值(作为元素值)并返回一个索引数组

    array_values(arr)

      获取指定数组的所有元素的值(作为元素值)并返回一个索引数组

    array_combine(arr1,arr2)

      前数组作键后数组作值,合并成一个数组。

    array_flip(arr)

      把键作为元素值,元素值作键  

 

    implode(‘分割符‘,arr)

      将一个数组所有的元素值,利用指定的分割符连接成一个字符串

    explode(‘分割符‘,str)

       把一个字符串按照指定的符号分隔成一个数组

    extract(arr)

      把一个数组每个元素单独定义为一个变量,名为键,值为元素值

    compact(‘$1‘,‘$2‘...)

      把多个变量合成一个数组,变量名为键,变量值为元素值

    [$a=]array_map(‘函参‘,arr)

      (回调函数)把数组的每个元素都分别赋给参数,运算后需返回。一般会把array_map的返回值们赋予一个数组保存

 

    array_push(arr,‘元素‘,‘元素2‘) (栈模拟)把一个或多个元素装入数组的尾部
    array_pop(arr) (栈模拟)把数组的尾部第一个元素出
    array_unshift(arr,‘元素1‘,‘元素2‘)(栈模拟)把一个或者多个元素装入数组的首位
    array_shift(arr) (栈模拟)把数组首部的第一个元素输出

    sort(arr) 把数组元素值按升序排序,生成索引数组,丢失原键
    asort(arr) 把数组元素值按升序排序,生成新数组,保留键值对
    rsort(arr) 把数组元素值按降序排序,生成索引数组,丢失原键
    arsort(arr) 把数组元素值按降序排序,生成新数组,保留键值对

  值得留意的就是数组的作用,第一是数组可以把多个需要返回的值存储在其中,这样就能实现多个值的返回(函数只能返回一个值),包括数据库的数据存储,存储在数组中,再拼接为字符串进行存储。

  数组可以用来随机输出指定返回的数,可以用来制作验证码(虽然验证码现在都不是这么做的)。但是随机输出既定范围的值还是有用处的,比如几率型事件效果

  总之数组用处很大,值得多去发掘一些用法。同时我也发现,一个人的逻辑、想法远不及两个人的,所以我认为多跟别人交流思维、逻辑对自身的逻辑思维巩固培养有很大帮助,往往那些简单的事物反倒难以被发觉。

  

 

11-22-数组