• 第六章_PHP数组


      1.PHP支持两种数组:索引数组(indexed array)和关联数组(associative array),前者使用数字作为键,后者使用字符串作为键。

      2.遍历索引数组

        2.1 for循环语句

        2.2 while循环语句

        2.3 do...while循环语句

        2.4 foreach语句

        2.5使用list()

          list()只能用于下标从0开始的索引数组,语法格式如下:

            void list(mixed $var, mixed $...)

    1 <?php
    2     $myarray=array('Kimi',5,'Angela');
    3     
    4     list($nickname,$age,$name)=$myarray;
    5     echo $nickname.' '.$age.' '.$name;
    6 ?>

        2.6 使用each()(不明白)

        2.7 混合使用list()和each()遍历数组(不明白)

      3.遍历关联数组

        常常使用foreach语句来遍历

        下面是一个使用foreach语句遍历二维数组的例子:

     1 <?php
     2     $myarray=array(
     3         'boy'=>array(
     4             'name'=>'Kimi',
     5             'age'=>4,
     6             'nickname'=>'kimi',
     7         ),
     8         'girl'=>array(
     9             'name'=>'Cindy',
    10             'age'=>5,
    11             'nickname'=>'wind'
    12         ),   
    13     );
    14     foreach($myarray as $gender_key => $gender_value){
    15         echo $gender_key.' => <br>';
    16         
    17         foreach($gender_value as $key => $value){
    18             echo '&nbsp&nbsp'.$key.' => '.$value.'<br>';    //&nbsp似乎是增加一个空格
    19         }
    20     }
    21 ?>

      4.数组的操作

        4.1 检查数组中是否存在指定的值使用array_search()

     1 <?php
     2     $myarray=array('name'=>'Kimi','age'=>5,'hobby'=>'reading',1=>2013);
     3     
     4     $key=array_search('Kimi',$myarray);
     5     echo '<p>'.$key;
     6     
     7     $key=array_search(5,$myarray);
     8     echo '<p>'.$key;
     9     
    10     $key=array_search('read',$myarray);
    11     var_dump($key);
    12     
    13     $key=array_search(2013,$myarray);
    14     echo '<p>'.$key;
    15 ?>

        4.2 把一个或多个数组合并为一个数组使用array_merge()

           函数返回合并后的数组,如果待合并的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。如果待合并的数组中包含相同的数组键名,后面的值将不会覆盖原来的值,而是附加到该元素后面。

    1 <?php
    2     $girl=array('name'=>'Cindy','age'=>5);
    3     $boy=array('name'=>'Kimi','age'=>4);
    4     $girl_date=array(0=>2000);
    5     $boy_date=array(0=>2001);
    6     
    7     $myarray=array_merge($girl,$boy,$girl_date,$boy_date);
    8     var_dump($myarray);
    9 ?>

        4.3 把一个数组分割为多个数组使用array_chunk()

        语法格式如下:

        array array_chunk(arrray $input, int $size [, bool $preserve_keys])

        其中,$input是分割的数组变量,$size是分割成的每个数组的元素个数(最后一个数组的元素可以小于$size),可选参数$preserve_keys默认为false,表示分割后的数组索引将从0开始重新编排。若设置为true,则分割后的数组将保留原数组中的键名。一维数组分割一次变成二维数组。

        4.4 统计数组中所有值出现的次数使用array_count_values()

        语法格式如下:

        array array_count_values( array $input)

        其中,$input是待统计的数组。该函数返回一个关联数组,其键名为$input数组中的元素的值,键值为该元素的值在$input数组中出现的次数

    1 <?php
    2     $boy=array('Kimi',5,'age'=>5,'name'=>'Kimi',2005);
    3     $counts=array_count_values($boy);
    4     print_r($counts);
    5     var_dump($counts);
    6 ?>

        4.5 计算数组中所有值的和使用array_sum()

        语法格式如下:

        number array_sum(array $array)

        4.6 删除数组中重复的值使用array_unique()

        语法格式如下:

        array array_unique(array $array)

        其中,$array是待操作的数组。该函数首先将键值作为字符串进行排序,保留第一次遇到的值所对应的键名,最后返回一个没有重复值得新数组。

        4.7 计算数组中的元素数目使用count()

        语法格式如下:

        int count( array $array [, int $mode])

        其中,$array是待计算的数组,可选参数$mode默认值为0,表示不进行递归统计元素个数,可以设置为1(或COUNT_RECURSIVE),表示递归统计元素的数目。

     1 <?php
     2     $myarray=array(
     3         'boy'=>array('name'=>'Kimi',
     4                      'nickname'=>'K',
     5                      'age'=>5),
     6         'girl'=>array('name'=>'Cindy',
     7                       'nickname'=>'C',
     8                       'age'=>4),
     9         );
    10     
    11     echo '<P>不递归统计元素个数:'.count($myarray);
    12     echo '<p>递归统计元素个数:'.count($myarray,COUNT_RECURSIVE);
    13 ?>        

        4.8 对数组正向排序使用sort()

        语法格式如下:

        bool sort( array &$array [, int $sort_flags])

        其中,参数$array是待排序的数组,可选参数$sort_flags可以为下面4种设置之一。

        ·SORT_REGULAR:通过正常比较进行排序(不改变类型)

        ·SORT_NUMBER:将数组元素作为数字来比较进行排序

        ·SORT_STRING:将数组元素作为字符串来比较并进行排序

        ·SORT_LOCATE_STRING:根据当前的区域(locate)设置把数组元素作为字符串比较并进行排序

        4.9 对数组逆向排序使用rsort()

        类比正向排序。

        4.10 将数组中的元素顺序翻转使用array_reverse()

        语法格式如下:

        array array_reverse( array $array [, bool $preserve_keys])

        其中,$array是待翻转的数组,可选参数$preserve_keys默认为FALSE,表示不保留原有的键名,设置为TRUE后,表示翻转数组元素时保留原有的键名。(关于可选参数,存在疑惑,见下面程序)

    1 <?php      
    2     $myarray=array('gdp'=>'GDP','ht'=>'HT','lq'=>'LQ','lc'=>'LC');
    3     $new_array=array_reverse($myarray,FALSE);//无论是FALSE还是TRUE,键名依旧未改变
    4     echo '<p>';
    5     print_r($new_array);
    6 ?>

        4.11 用给定的值填充数组使用array_pad()

        语法格式如下:

        array array_pad( array $input, int $pad_size, mixed $pad_value)

        其中,参数$input是待填充的数组,参数$pad_size是填充后数组的大小,参数$pad_value是用来填充的元素。如果$pad_size为正,填充的元素将位于$input右侧,反之亦然。

        4.12 计算多个数组的交集使用array_intersect()

        语法格式如下:

        array array_intersect( array $array1 [, array $array2 [, array $...] ] )

  • 相关阅读:
    Javascript、Jquery获取浏览器和屏幕各种高度宽度
    使用jquery修改css中带有!important的样式属性
    jQuery事件之on()方法绑定多个选择器,多个事件
    JS 实现类似打印的效果(一个字一个字显示)
    编写jQuery 插件
    HTML5中新增加Input 的种类
    巧用Ajax的beforeSend提高用户体验
    window窗口操作
    CIDR
    mysql
  • 原文地址:https://www.cnblogs.com/anthozoan77/p/3497077.html
Copyright © 2020-2023  润新知