zoukankan      html  css  js  c++  java
  • 第六章_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 $...] ] )

  • 相关阅读:
    笨方法学python中执行argv提示ValueError: not enough values to unpack (expected 4, got 1)
    VMware workstation安装
    Redis bigkey分析
    MySQL drop table 影响及过程
    MySQL 大表硬连接删除
    ES elasticsearch 各种查询
    ES elasticsearch 各种聚合
    ES elasticsearch 聚合统计
    ES elasticsearch 实现 count单字段,分组取前多少位,以地理位置中心进行统计
    MySQL行溢出、varchar最多能存多少字符
  • 原文地址:https://www.cnblogs.com/anthozoan77/p/3497077.html
Copyright © 2011-2022 走看看