zoukankan      html  css  js  c++  java
  • 【PHP篇】数组

    1、简介:数组存储方式是键值对

    2、声明:$数组变量名=array(2,3,9,3,“546”,“yy”=>”hhhh”,100=>”uu100”);

    3、下标注意:可为“字符串”或者整数,整数组成的字符串会自动转换为整数,如“80”完全等价于整数88

    4、添加或者修改值:$数组变量名[下标]=“值”;//旧下标是重新赋值,新下标是创建新键值对

    5、追加:$数组变量名[ ]=”值“;//追加形式添加值,其下标默认为最高数字下标排序

    6、打印:print_r($数组变量名);echo $数组变量名[“下标”];var_dump($数组名)

    7、清除元素:unset($数组名或者$数组名[下标]);//清除键值对

    $数组名或者$数组名[下标]=null;//只清除值

    $变量名=array_values($数组名);//数组删除后下标进行从新索引

    8、二维数组:$数组变量名=array(“y1”,”y2”,array(“u1”,”u2”));//echo $数组名[2][0];//输出u1

    9、数组的遍历:for循环,对下标的整数连续性要求很高

    foreach($数组名 as  $变量名){echo $变量名;}//打印数组所有的值

    foreach($数组名 as  $变量1 => $变量2){ …}//变量1为键,变量2为值

    list($变量1,$变量2)=数组;echo $变量1;//整数下标需从零开始并连续

    10、相关函数:

    罗列所有值:array_values($数组变量名);//返回数组的所有值,并组成一个新的有序数组

    罗列所有键:array_keys($数组变量名);//返回数组所有键名,并组成一个新有序数组,可加参数

    查看元素是否存在:in_array(“值1“,$数组1,);//返回元素值1在不在数组1中,值1可为数组

    查看键是否存在:array_key_exists(键名,$数组名);、isset($数组名[键名]);

    用值查键:array_search(“值1”,$数组1);//返回值1所对应的键名

    反序:array_reverse($数组变量名);//返回值为反序后的数组

    统计元素总数:count($数组名);//array("y1",array("u1","u2")); 长度为2//count($数组,1),长度为4

    统计值出现次数:array_count_values($数组名);//返回为数组  值=>次数

    删除重复值:array_unique($数组名);//返回去重复后数组,最先出现的保留

    过滤数组值:$yy=array("yy0","uu1",array("uu","pp"));

    array_filter($yy,function($valuex){//函数过滤掉假值

    if(is_array($valuex))return false;

    else return true;});//过滤值中数组,返回过滤后的数组

    处理数组值:$yy=array("uu0","uu1","uu2","uu3");

    array_walk($yy,function(&$valuex, &$keyx){//数组值和键引用参数传进来,&

    $valuex.="-----";});

    print_r($yy);//Array ( [0] => uu0----- [1] => uu1----- [2] => uu2----- [3] => uu3----- )

    值排序(改变下标):sort($数组变量名);//升序排列 rsort()降序//改变数组内部结构

    值排序(不变下标):asort($数组变量名);//升序 arsort($数组变量名);//改变数组内部结构

    键排序:ksort($数组变量名); //升序   krsort($数组变量名);//降序//改变数组内部结构

    计算机自然排序:natsort($数组变量名);//计算机普通文件列表排序//改变数组内部结构

    自定义排序:usort($数组变量名,function($ax,$bx){

                             If($ax>$bx) return 1;//升序,-1为降序

                             }

    自定义排序类似函数:uasort,保持下标不变;uksort 键排序

    数组间排序:array_multisort($排序数组名,$跟排数组名1,$跟排数组名2……);//更改原数组内容

    取部分值:array_slice($数组名,起始位置,取个数);//返回数组,位置可为负数—从后往前减小

    获取数组间交集:array_intersect($数组1,$数组2,$数组3);//返回数组//array_diff()//差集

    删除部分:array_splice($数组名,起始位置,个数);//返回数组

    替换部分为某一值:array_splice($数组名,起始位置,个数,值);//改变原数组内部,但直接打印如上

    数组合并1:array_combine($键数组,$值数组);//键值数组个数必须一一对应

    数组合并2:$数组3=$数组1+$数组2;//相同下标会覆盖,且以数组1为准

    数组合并3:array_merge($数组1,$数组2);//重新索引,关联数组【“=>”】下标相同会覆盖

    随机取值:array_rand($数组1);//返回数组1随机下标//array_rand($数组1,个数)//返下标数组

    打乱数组:shuffle($数组名);//更改原数组结构

    求和:array_sum($数组1);//输出数组1里全部元素的数字和

    声明指定范围数组:range(包含起始值,包含结束值,跳步值)//返回数组

    创建一个有相同初值的数组:array_fill(开始下标,结束下标,初值);//返回数组

     

     

    11、超全局数组:值可直接改变,作为全局变量使用

    $_GET、$_POST、$_SESSION、$_FILES……

    $_REQUEST可以接受客户端的get和post请求数据//不建议用

    $_SERVER:服务器基本情况配置,客户端的访问环境

    ……

     

     

     

     

  • 相关阅读:
    【IT笔试面试题整理】字符串的组合
    【IT笔试面试题整理】字符串的排列
    进程与线程的区别?转
    【IT笔试面试题整理】判断一个树是否是另一个的子树
    【IT笔试面试题整理】连续子数组的最大和
    【IT笔试面试题整理】反转链表
    【IT笔试面试题整理】不用加减乘除做加法
    java Singleton 几种方式解析转
    【IT笔试面试题整理】判断链表是否存在环路,并找出回路起点
    【IT笔试面试题整理】删除无序链表中重复的节点
  • 原文地址:https://www.cnblogs.com/dongxiaodong/p/9917563.html
Copyright © 2011-2022 走看看