PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)

5年以前  |  阅读数:509 次  |  编程语言:PHP 

本文实例总结了PHP数组用法。分享给大家供大家参考,具体如下:

Demo1.php


    <?php
      //创建一个数组变量
      $userNames = array('张三','李四','王五');
      //将这个数组打印出来
    // echo $userNames;//Array
    // $userName = '张三';
    // echo $userName;//张三
      //如果你想打印出这个数组的某一个元素
      //那你必须找到这个元素的下标,键(key)
      //0,1,2
      //echo $userNames[2];//王五
      //print_r -- 打印关于变量的易于理解的信息。
      //print_r($userNames);//Array ( [0] => 张三 [1] => 李四 [2] => 王五 )
      //$userNames 是一个数组变量,而 $userNames[x] 可以理解成数组变量下的小变量
      $userNames[4] = '赵七';
      print_r($userNames);//Array ( [0] => 张三 [1] => 李四 [2] => 王五 [4] => 赵七 )
    ?>

Demo2.php


    <?php
      //range -- 建立一个包含指定范围单元的数组
      //range 包含指定数组
      //包含两种东西,一种叫做键(key),一种叫做值(value)
      //key 是自动生成的,默认从 0 开始,每次 +1
      //value 是你自己赋值的
      //$numbers = range(1,4);
      //print_r($numbers);  //Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )
    // $letters = range('a','e');
    // print_r($letters);//Array ( [0] => a [1] => b [2] => c [3] => d [4] => e )
    // echo $letters[3];
    ?>

Demo3.php


    <?php
      $userNames = array('张三','李四','王五');
      //通过循环来显示数组里的所有值
      //从 0-5 之间循环
    // for($i=0;$i<3;$i++){
    //   echo ($i+1).'-->'.$userNames[$i].'<br/>';
    // }
      /*
       * 1-->张三
       * 2-->李四
       * 3-->王五
       * */
    // echo count($userNames); //3
    // for($i=0;$i<count($userNames);$i++){
    //   echo ($i+1).'-->'.$userNames[$i].'<br/>';
    // }
      //如果 key 不是从 0 开始,或者说,压根不是数字,那么就无法用无精打采循环来实现显示数据列表
      //通过 foreach 循环来遍历数组,这方式好处,不需要去考虑 key
    // foreach ($userNames as $value){
    //   echo $value.'<br/>';
    // }
      //foreach 遍历 $key => $value
    // foreach ($userNames as $keyaaa => $value){
    //   echo $keyaaa.'-->'.$value.'<br/>';
    // }
      /**
       * 0-->张三
       * 1-->李四
       * 2-->王五
       * */
      //所以,你要先做个判断
      if(is_array($userNames)){
        foreach ($userNames as $key => $value){
          echo $key.'-->'.$value.'<br/>';
        }
      }else{
        echo $userNames;
      }
    ?>

Demo4.php


    <?php
      $userNames = array('张三','李四','王五');
      print_r($userNames);
      echo $userNames[0];
    ?>

Demo5.php


    <?php
      //创建自定义键(key)的数组
      //如果你不去声明元素的 key ,那么从开始 0 计算
    // $userNames = array('baidu'=>'张三','李四','王五');
    // print_r($userNames); //Array ( [baidu] => 张三 [0] => 李四 [1] => 王五 )
      $userNames = array('baidu'=>'张三','taobao'=>'李四','360'=>'王五');
      print_r($userNames); //Array ( [baidu] => 张三 [taobao] => 李四 [360] => 王五 )
      echo $userNames['baidu'];
    ?>

Demo6.php


    <?php
      //先创建只一个元素的数组
      $userAge = array('chaoyv'=>25);
      //打印出 chaoyv 的年龄
      //echo $userAge['chaoyv']; //25
      //将以前的数组,追加两条,这里说的下标,键,key 是一个东西
      $userAge['yike'] = 30;
      $userAge['wife'] = 24;
      print_r($userAge);
    ?>

Demo7.php


    <?php
      //array 关键字都可以不要,就能创建数组
      $userAges['chaoyv'] = 25;
      //print_r($userAges); //Array ( [chaoyv] => 25 )
      $userAges['yike'] = 30;
      $userAges['wife'] = 24;
      //print_r($userAges); //Array ( [chaoyv] => 25 [yike] => 30 [wife] => 24 )
      //这里无法使用 for 循环将数据全部显示出来,只能通过 foreach 遍历出来
      foreach ($userAges as $value){
        echo $value.'<br/>';
      }
    ?>

Demo8.php


    <?php
    // $userAges['chaoyv'] = 25;
    // $userAges['yike'] = 30;
    // $userAges['wife'] = 24;
      $username = array('世'=>'何开','血'=>'赵血儿','学'=>'墨学之');
      //print_r($username);
      //each 的使用
      //each -- 返回数组中当前的键/值对并将数组指针向前移动一步
      //这里有一个指针,默认情况下,指针是指定第一个键值对
      //这里的第一个键值对是 '世'=>'何开'
      //如果each($username),那么获取的就是第一个键值对 '世'=>'何开'
      //each 这个函数返回的是一个数组,
      //each 将第一个键值对获取到,然后包装成一个新的数组。
      //print_r(each($username));
      //相当于 $a = Array ( [1] => 何开 [value] => 何开 [0] => 世 [key] => 世 )
      //$a = each($username);
      //echo $a[value];
      print_r(each($username));
      echo '<br/>';
      print_r(each($username));
    ?>

Demo9.php


    <?php
      $username = array('世'=>'何开','血'=>'赵血儿','学'=>'墨学之');
      //这里,我们怎么使用 each 来循环所有的数据呢?
      //相当于 $a = Array ( [1] => 何开 [value] => 何开 [0] => 世 [key] => 世 )
      //两个感叹号,表示真是存在的数据转换成布尔值
    // echo !!each($username);//说明有数据,有数据,用布尔值的理念就是真(true)
    // echo !!each($username);
    // echo !!each($username);
    // echo !!each($username);//第四个是假的
      while (!!$a = each($username)){
        echo $a['key'].'-->'.$a['value'].'<br/>';
      }
    // $a = each($username);
    // echo $a[0].'---'.$a[1].'<br/>';
    // $a = each($username);
    // echo $a[0].'---'.$a[1].'<br/>';
    // $a = each($username);
    // echo $a[0].'---'.$a[1].'<br/>';
    // /**
    //  * 世---何开
    //  * 血---赵血儿
    //  * 学---墨学之
    //  * */
    ?>

Demo10.php


    <?php
    // $usernames = array('世'=>'何开','血'=>'赵血儿','学'=>'墨学之');
    // $a = each($usernames);
    // //世-->何开
    // echo $a['key'];
    // echo '-->';
    // echo $a['value'];
    // $a = each($usernames);
    // //血-->赵血儿
    // echo $a['key'];
    // echo '-->';
    // echo $a['value'];
    // //list -- 把数组中的值赋给一些变量
    // $a = array('aaa','bbb','ccc','ddd');
    ////  print_r($a);//Array ( [0] => aaa [1] => bbb [2] => ccc [3] => ddd )
    // list($var1,$var2,$var3,$var4) = $a;
    // echo $var4;
    // $usernames = array(0=>'何开','血'=>'赵血儿','学'=>'墨学之');
    // //list 只能认识 key 为数字的
    // //自定义的字符串 key 是无法使用 list 来识别的
    // list($a,$b,$c) = $usernames;
    // echo $a;//何开
      $usernames = array('世'=>'何开','血'=>'赵血儿','学'=>'墨学之');
      //相当于 $a = Array ( [1] => 何开 [value] => 何开 [0] => 世 [key] => 世 )
      list($name,$username) = each($usernames);
      echo $username;
    ?>

Demo11.php


    <?php
      $usernames = array('世'=>'何开','血'=>'赵血儿','学'=>'墨学之');
      $a =each($usernames);
      echo $a[key];
      $a =each($usernames);
      echo $a[key];
      //第三次,我想取数组的第一条数组
      //只要将数组的指针调整到第一个位置即可
      //reset -- 将数组的内部指针指向第一个单元
      reset($usernames);
      $a = each($usernames);
      echo $a[key];
      //世血世
    ?>

Demo12.php


    <?php
    // $usernames = array('世'=>'何开','境'=>'何开','血'=>'赵血儿','学'=>'墨学之');
    // print_r($usernames);
    // echo '<br/>';
    // //array_unique -- 移除数组中重复的值
    // //创建了一个新数组,而新数组呢,已经移除掉了,旧的数组原封不动
    // $a = array_unique($usernames);
    // print_r($a);
      $numbers = array(1,24,2,1,3,4,2,6,4,2,4,56,2,4,5);
      print_r($numbers);
      $newNumbers = array_unique($numbers);
      print_r($newNumbers);
    ?>

Demo13.php


    <?php
      $usernames = array('世'=>'何开','境'=>'何开','血'=>'赵血儿','学'=>'墨学之');
      print_r($usernames);
      echo '<br/>';
      //array_flip -- 交换数组中的键和值
      $newUsernames = array_flip($usernames);
      print_r($newUsernames);
      /**
       * Array ( [世] => 何开 [境] => 何开 [血] => 赵血儿 [学] => 墨学之 )
       * Array ( [何开] => 境 [赵血儿] => 血 [墨学之] => 学 )
       * */
    ?>

Demo14.php


    <?php
      //创建一个单一的数组
      $products = array(
        array('苹果','6','28.8'),
        array('猪肉','2','18.8'),
        array('饼干','4','48.8')
      );
      //print_r($products);
      //将 $products 第一条元素取出来
      //print_r($products[2]);
      //数组里的数组
      echo "|".$products[0][0]."|".$products[0][1]."|".$products[0][2]."|<br />";
      echo "|".$products[1][0]."|".$products[1][1]."|".$products[1][2]."|<br />";
      echo "|".$products[2][0]."|".$products[2][1]."|".$products[2][2]."|<br />";
    ?>

Demo15.php


    <?php
      //创建一个单一的数组
      $products = array(
        array('苹果','6','28.8'),
        array('猪肉','2','18.8'),
        array('饼干','4','48.8')
      );
      //首先要求出外面数组的长度
      //echo count($products);
      for($i=0; $i<count($products);$i++){
        for($j=0;$j<count($products[$i]);$j++){
          echo '|'.$products[$i][$j];
        }
        echo "|<br/>";
      }
      /*
       * |苹果|6|28.8|
       * |猪肉|2|18.8|
       * |饼干|4|48.8|
       * **/
    ?>

Demo16.php


    <?php
      //创建一个单一的数组
      $products = array(
        array('产品'=>'苹果','数量'=>'6','价格'=>'28.8'),
        array('产品'=>'猪肉','数量'=>'3','价格'=>'25.8'),
        array('产品'=>'饼干','数量'=>'2','价格'=>'26.8')
      );
      //print_r($products)  ;
    // for($i=0;$i<count($products);$i++){
    //   foreach ($products[$i] as $key => $value){
    //     echo $key.'--'.$value.'|';
    //   }
    //   echo '<br/>';
    // }
      for($i=0;$i<count($products);$i++){
        while (!!list($key,$value)=each($products[$i])){
          echo $key.'--'.$value.'|';
        }
        echo '<br/>';
      }
      /**
       * 产品--苹果|数量--6|价格--28.8|
       * 产品--猪肉|数量--3|价格--25.8|
       * 产品--饼干|数量--2|价格--26.8|
       * */
    ?>

Demo17.php


    <?php
    // //sort -- 对数组排序
    // $fruit = array('banner','orange','apple');
    // //没有排序前,一般是按照 key 的顺序进行显示
    // //print_r($fruit);
    // //排序之后
    // sort($fruit);
    // print_r($fruit);
      $numbers = array(45,44,27,574,241,7,45,1,5,2,4,5);
      print_r($numbers);
      rsort($numbers);
      echo '<br/>';
      print_r($numbers);
      //按照数字的话,要看整体的数字的大小,按照字符串的话,只看第一位大小
    // $numbers = array(2,12,3);
    // sort($numbers,SORT_NUMERIC);
    // print_r($numbers);Array ( [0] => 2 [1] => 3 [2] => 12 )
    // $numbers = array(2,12,3);
    // sort($numbers,SORT_STRING);
    // print_r($numbers);//Array ( [0] => 12 [1] => 2 [2] => 3 )
    ?>

Demo18.php


    <?php
    //asort -- 对数组进行排序并保持索引关系
      $fruit = array('banner','orange','apple');
    // sort($fruit);
    // print_r($fruit);
      //Array ( [0] => apple [1] => banner [2] => orange )
      asort($fruit);
      print_r($fruit);
      //Array ( [2] => apple [0] => banner [1] => orange )
    ?>

Demo19.php


    <?php
      $fruit = array('b'=>'banner','o'=>'orange','a'=>'apple');
      //ksort -- 对数组按照键名排序
      ksort($fruit)  ;
      print_r($fruit);
      //Array ( [a] => apple [b] => banner [o] => orange )
    ?>

Demo20.php


    <?php
      //echo '<img src="images/mm1.jpg" />';
      //创建一个数组
      $pic = array('mm1.jpg','mm2.jpg','mm3.jpg','mm4.jpg','mm5.jpg');
      //数组进行随机打乱
      //shuffle($pic);
      //多数组进行反向排序,array 打头的函数,一般会创建一个新数组
      $a = array_reverse($pic);
      for($i=0;$i<3;$i++){
        echo '<img src="images/'.$a[$i].'" style="margin:10px;" />';
        echo "\n";
      }
    ?>

Demo21.php


    <?php
      $userName = array('张三');
      print_r($userName);
      //这个函数的返回值将得到 ,目前数组的元素个数
      //array_unshift -- 在数组开头插入一个或多个单元
      //在开头插入数据
      array_unshift($userName,'李四')  ;
      //在结尾插入数据
      array_push($userName,'吴者然');
      //删除开头的元素
      array_shift($userName);
      //删除结尾的元素
      array_pop($userName);
      print_r($userName);
    ?>

Demo22.php


    <?php
      $fruit = array('banner','orange','apple');
      //这个函数用来获取一个数组中的键(key)
      //第二个参数表明随即获取几个
    // $a = array_rand($fruit,1);
    // echo $fruit[$a];
      $a = array_rand($fruit,2);
      echo $fruit[$a[0]].' '.$fruit[$a[1]];
    ?>

Demo23.php


    <?php
      $username = array('世'=>'何开','血'=>'赵血儿','学'=>'墨学之');
      //默认情况下,指针在第一条数据
      //获取指针的当前元素,current 并没有将指针移到下一步
    // echo current($username);
    // echo current($username);
    // echo current($username);
    // echo next($username);
    // echo current($username);
    // echo next($username);
    // echo current($username);
    // //reset -- 将数组的内部指针指向第一个单元
    // echo reset($username);
    // echo sizeof($username);//count
      $numbers = array(1,4,5,656,7,5,7,4,7,4,5,7);
      //array_count_values -- 统计数组中所有的值出现的次数
      print_r(array_count_values($numbers));
    ?>

Demo24.php


    <?php
      $a=$b=$c='';
      $fruits = array('a'=>'apple','b'=>'banner','c'=>'orange');
      //通过标量函数将字符串键(key)设置成变量,然后将值赋给了这个变量
      extract($fruits);
      echo $a;
      echo $c;
      echo $b;
      //appleorangebanner
    ?>

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php面向对象程序设计入门教程》、《PHP网络编程技巧总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例