• php数组数据结构


    3.1 PHP数组数据结构

    数组的英文是array,可以存入多个不同类型的数据,是一个复合数据类型。

    数组案例:

    <?php
    
    $shu = array(1 , 1.5 , true ,'天王盖地虎,小鸡炖蘑菇');
    
    echo '<pre>';
    
    var_dump($shu);
    
    echo '</pre>';
    
    ?>

    在上例中,我们发现我们存入了:整型、浮点、布尔、字符串

    注:上例中echo pre这个标签的主要目的是为原样输出,格式展示的更好看,更清晰。

    可以用var_dump()打印出来显示看一下效果:

     

    索引数组的下标必须要从0开始吗?

    答:这个问题其实不然,索引数组并不一定要从0开始。

    那如何能够不从0开始呢?

    答:需要用到大家在上面学的一小块知识哟。就是键值对应符。我们来动手写。

    <?php
    $kele = array('只有不断努力才能博得未来',12 => 'NoAlike', 'PHP中文网' , '去PHP中文网学PHP', 19 => '苹果和梨子我都爱' , '橘子我最爱');
    echo'<br />';
    var_dump($kele).'<br />';
    ?>

    1. for循环遍历索引数组

    2. <?php
      $shu = array(1, 1.5, true, '天王盖地虎,小鸡炖蘑菇');
      echo $shu[2].'<br />';
      echo $shu[3].'<br />';
      for ($i = 0; $i <= 3; $i++) {
          echo $shu[$i].'<br />';
      }
      ?>

    通过上面的例子,我们就把数组进行了循环。因为下标是从0开始的,定义$i=0 。每次循环的时候让$i 1 ,但是必须要小于等于3,因为数组下标的最大值为3

     

    1. 常用操作数组函数

    序号

    函数信息

    说明

    实例

    1

    array_shift()

    弹出数组中的第一个元素

     

    2

    array_unshift()

    在数组的开始处压入元素

     

    3

    array_push()

    向数组的末尾处压入元素

     

    4

    array_pop()

    弹出数组末尾的最后一个元素

     

    5

    current()

    读出指针当前位置的值

     

    6

    key()

    读出指针当前位置的键

     

    7

    next()

    指针向下移

     

    8

    prev()

    向上移

     

    9

    reset()

    指针到开始处

     

    10

    end()

    指针到结束处

     

    这些函数,也是面试中基础面试中最爱问到的问题。

    序号

    函数信息

    说明

    实例

    1

    array_combine()

    生成一个数组,用一个数组的值作为键名,另一个数组值作为值

     

    2

    range()

    创建并返回一个包含指定范围的元素的数组。

     

    3

    compact()

    创建一个由参数所带变量组成的数组

     

    4

    array_fill()

    用给定的值生成数组

     

    5

    array_chunk()

    把一个数组分割为新的数组块

     

    6

    array_merge()

    把两个或多个数组合并为一个数组

     

     

    array_slice()

    在数组中根据条件取出一段值,并返回

     

     

    array_diff()

    返回两个数组的差集数组

     

     

    array_search()

    在数组中搜索给定的值,如果成功则返回相应的键名

     

     

    array_splice()

    把数组中的一部分去掉并用其它值取代

     

     

    array_sum()

    计算数组中所有值的和

     

     

    in_array()

    检查数组中是否存在某个值

     

     

    array_key_exists()

    检查给定的键名或索引是否存在于数组中

     

     

    shuffle()

    将数组打乱,保留键值

     

     

    count()

    计算数组中的单元数目或对象中的属性个数

     

     

    array_flip()

    返回一个键值反转后的数组

     

     

    array_keys()

    返回数组所有的键,组成一个数组

     

     

    array_values()

    返回数组中所有值,组成一个数组

     

     

    array_reverse()

    返回一个元素顺序相反的数组

     

     

    array_count_values()

    统计数组中所有的值出现的次数

     

     

    array_rand()

    从数组中随机抽取一个或多个元素,注意是键名

     

     

    array_unique()

    删除重复值,返回剩余数组

     

     

    sort()

    按升序对给定数组的值排序,不保留键名

     

     

    rsort()

    对数组逆向排序,不保留键名

     

     

    asort()

    对数组排序,保持索引关系

     

     

    arsort()

    对数组逆向排序,保持索引关系

     

     

    ksort()

    按键名对数组排序

     

     

    krsort()

    将数组按照键逆向排序

     

     

    natsort()

    用自然顺序算法对数组中的元素排序

     

     

    natcasesort()

    自然排序,不区分大小写

     

     

    array_filter()

    去掉数组中的空元素或者预定元素

     

     

    extract

    将键变为变量名,将值变为变量值

     

    功能:弹出数组中的第一个元素
    
    <?php
    
    $mingren = array("邓超", "黄晓明", "宁泽涛", "钟汉良");
    
    $dc = array_shift($mingren);
    
    echo $dc .'<br />';
    
    print_r($mingren);
    
    ?>

    综合案例:

    <?php
    $shu = array(213,012,12.3,true,'天王盖地虎,小鸡炖蘑菇');
    echo'<br />';
    var_dump($shu);
    echo'<br />';
    $type=gettype($shu);
    echo $type.'<br />';
    echo'<br />';
    echo count($shu);
    echo'<br />';
    for($i=0;$i <= 3;$i++){
        echo $shu[$i];
    }
    echo'<br />';
    echo array_shift($shu);
    echo'<br />';
    var_dump($shu);
    echo $shu[4].'<br />';
    $kele = array('只有不断努力才能博得未来',12 => 'NoAlike', 'PHP中文网' , '去PHP中文网学PHP', 19 => '苹果和梨子我都爱' , '橘子我最爱');
    echo'<br />';
    var_dump($kele).'<br />';
    echo'<br />';
    $zz = array("/sb/||/dd/||//");
    $string = 'ssssbsssdaaaa';
    if(preg_match($zz,$string,$matches)){
        echo 'yes;';
        var_dump($matches);
    }else{
        echo 'no';
    }
    echo'<br />';
    $zz = '/wq/';
    $string = 'ssssswqaaaaaa';
    if(preg_match($zz, $string, $matches)){
        echo '匹配到了,结果为:';
        var_dump($matches);
    }else{
        echo '没有匹配到';
    }
    end($shu);
    ?>
  • 相关阅读:
    c++ 对象作为参数传递
    LeetCode总结 -- 树的性质篇
    【Bug笔记】The superclass &quot;javax.servlet.http.HttpServlet&quot; was not found on the Java Build Path
    poj3642 Charm Bracelet(0-1背包)
    [笔试题] 阿里巴巴2013技术类笔试题(完整版手工记录+具体解析)
    swift-switch使用方法
    Android OpenGL ES 应用(二) 纹理
    【VBA研究】查找目录以下全部文件的名称
    解决com.ibatis.sqlmap.client.SqlMapException: There is no statement named in this SqlMap
    Android菜鸟的成长笔记(27)——ViewPager的使用
  • 原文地址:https://www.cnblogs.com/dazhu-secure/p/13726693.html
Copyright © 2020-2023  润新知