• 2016/3/20 数组定义 数组遍历 超全局数组 数组元素设置(in_array() 、array_reverse()、count()、array_unique()、unset()、array_values、array_merge、array_push) 列表实例


    一、数组定义

    php数组与其他语言的数组的不同:

    其他例如java语言 :同一种类型数据的集合。
    php:数组可以存储任何类型的数据。同一个数组中可以放int类型也可以放string类型

    ①索引数组的定义:

    1 $attr=array(1,2,3,4,"aa");
    2  print_r($attr);
    3 echo "<br/>";

    显示效果:

    (上图中  1 是截取多了)

    ②关联数组定义:与索引数组不同之处:有key值

    1 $attr = array('one' => 10,"two" => 100,"three" => 10000 );
    2 print_r($attr);
    3 echo @$attr[one];//单双引号都可以  @抑制错误
    4 echo "<br/>";

    显示效果:

    注意:1,索引数组可以用索引数取。 2,关联数组需要用key值取。

    二、数组遍历
    ①for循环遍历,针对索引数组,不能遍历关联数组。

    //索引数组

    1 $attr=array(1,2,3,4,"aa");     
    2 for ($i=0; $i<count($attr); $i++){
    3 echo @$attr[$i]."<br>";
    4 };
    5 echo "<br/>";

    显示效果:

    //关联数组

    1 $attr = array('one' => 10,"two" => 100,"three" => 10000 );
    2 for ($i=0; $i<count($attr); $i++){
    3     echo @$attr[$i]."<br>";
    4 };
    5 echo "<br/>";

    显示效果:为空白   

    ② php中foreach遍历

    java中foreach遍历:

    1 int arr[]={1,2,3};
    2 for(int x:arr){    //数据类型   新定义的数组名 :要遍历的数组名
    3 System.out.println(x);
    4 };

    php中遍历索引数组:

    1 $attr=array(1,2,3,4,"aa");
    2 foreach ($attr as $value) {
    3      echo  $value."<br>";
    4  };

    效果:

    遍历关联数组

    1 $attr = array('one' => 10,"two" => 100,"three" => 10000 );
    2 
    3 foreach ($attr as $value) {
    4      echo  $value."<br>";
    5  };

    效果:

    ③each()函数,顺序显示,第一次取第[0]个依次向下取,将该元素以数组的形式返回;
    如果超出,则不会显示

     1 $attr = array('one' => 10,"two" => 100,"three" => 10000 );
     2 print_r (each($attr));
     3 echo "<br/>";
     4 print_r (each($attr));
     5 echo "<br/>";
     6 print_r (each($attr));
     7 echo "<br/>";
     8 echo "----------------<br>";
     9 //将指针复位,指回第一个元素
    10 reset($attr);
    11 print_r (each($attr));
    12 echo "<br/>";
    13 print_r (each($attr));
    14 echo "<br/>";
    15 print_r (each($attr));
    16 echo "<br/>";

    ④list()函数 只能取索引数组

     1 $attr=array(1,2,3,4,"aa");
     2 list($a,$b,$c,$d,$e)=$attr;
     3 echo $a."<br>";
     4 echo $b."<br>";
     5 echo $c."<br>";
     6 echo $d."<br>";
     7 echo $e."<br>";
     8 echo "<br/>";
     9 echo "<br/>";
    10 //只取最后一个元素
    11 list(,,,,$e)=$attr;
    12 echo $e;
    13 echo "<br/>";

    ⑤ 用each()和list()函数遍历数组,索引数组和关联数组联合使用

     1 $attr=array(1,2,3,4,"aa");
     2 list($key,$value)=each($attr);
     3 echo $key."=>".$value."<br>";
     4 list($key,$value)=each($attr);
     5 echo $key."=>".$value."<br>";
     6 list($key,$value)=each($attr);
     7 echo $key."=>".$value."<br>";
     8 list($key,$value)=each($attr);
     9 echo $key."=>".$value."<br>";
    10 list($key,$value)=each($attr);
    11 echo $key."=>".$value."<br>";
    12 //超出数组的范围,显示 "=>""  其实为空
    13 list($key,$value)=each($attr);
    14 echo $key."=>".$value."<br>"

    效果:


    ⑥while循环输出

    1 $attr=array(1,2,3,4,"aa");
    2 while (list($key,$value)=each($attr)) {
    3     echo $key."=>".$value."<br>";
    4 };

    效果:

    ⑦current 指针 key 值
    current取当前指针指向的内容 即value;
    key 取key的索引值

     1 $attr=array(1,2,3,4,"aa");
     2 
     3 echo current($attr)."<br>";
     4 echo key($attr)."<br>";
     5 echo current($attr)."<br>";
     6 echo key($attr)."<br>";
     7 echo current($attr)."<br>";
     8 echo key($attr)."<br>";
     9 echo current($attr)."<br>";
    10 echo key($attr)."<br>";
    11 echo current($attr)."<br>";
    12 echo key($attr)."<br>";

    显示效果:只有最前一组的数值value和key值

    ⑧current($attr)  key($attr)

    next($attr),  prev($attr),   end($attr),  reset($attr)  向下移动     向上移动    指向最后一个     指针复位

     1 $attr=array(1,2,3,4,"aa");
     2 echo current($attr)."<br>";
     3 echo key($attr)."<br>";
     4 
     5 next($attr);//指针向下移动
     6 echo current($attr);
     7 echo key($attr);
     8 
     9 prev($attr);//指针向上移动
    10 echo current($attr)."<br>";
    11 echo key($attr)."<br>";
    12 
    13 end($attr);//指针指向最后一个
    14 echo current($attr)."<br>";
    15 echo key($attr)."<br>";
    16 
    17 reset($attr);//指针复位
    18 echo current($attr)."<br>";
    19 echo key($attr)."<br>";

    显示效果:

    ⑨next($attr)    while循环    do...while循环

    1 while (next($attr)) {    //直接从下一个开始 也就是跳过[0] 直接到[1]
    2     echo key($attr)."  ";    
    3     echo current($attr);
    4     echo "<br/>";
    5 };
    如何避免跳过 用do...while

    显示效果:

        

    1 do{      //不管条件满足与否,先运行一次。
    2     echo key($attr)."  ";
    3     echo current($attr);
    4     echo "<br/>";
    5 }
    6 while (next($attr)) ;
    7 echo "<br/>";

    显示效果:

    ⑩预定义数组(超全局数组)

    1,print_r($_SERVER);

    $_SERVER  是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。

    2,print_r($_ENV);//环境变量

    这些变量被从 PHP 解析器的运行环境导入到 PHP 的全局命名空间。很多是由支持 PHP 运行的 Shell 提供的,并且不同的系统很可能运行着不同种类的 Shell,所以不可能有一份确定的列表

    3,print_r($_GET);//提交有长度限制
    通过 URL 参数传递给当前脚本的变量的数组。

    4,print_r($_POST);//没有长度限制
    通过 HTTP POST 方法传递给当前脚本的变量的数组。

    5,print_r($_REQUEST);//与POST相同
    默认情况下包含了 $_GET ,$_POST 和 $_COOKIE 的数组。

    6,print_r($_FILES);
    通过 HTTP POST 方式上传到当前脚本的项目的 数组 。

    7,print_r($_SESSION);//会话控制    保存登陆信息
    长时间没有操作页面,再次使用要求重新登陆 存储状态

    8,print_r($_COOKIE);//存储状态
    通过 HTTP Cookies 方式传递给当前脚本的变量的数组  

    ⑪数组中元素--有无、反转、个数、去重、删除某个索引即值、重新排列索引、合并数组、追加元素

    1 $at=array(1,2,1,4,5,6,7,8);
    2 //判断这个值是否在这个数组中
    3 echo in_array(2, $at);

    有的话判断:为1   无的话:为空   什么都不显示

    
    
    $at=array(1,2,1,4,5,6,7,8);
    1 //反转数组  反转顺序
    2   print_r(array_reverse($at));

    显示效果:

    1  $at=array(1,2,1,4,5,6,7,8);
    2  //返回数组里面元素的个数
    3   echo count($at);

    显示效果:

    1 $at=array(1,2,1,4,5,6,7,8);
    2 //对数组里面的值去重
    3   print_r(array_unique($at));

    显示效果:  去除了[2]=>1    与 [0]=>1  重复

    //删除某一个索引号的数值
    1
    $at=array(1,2,1,4,5,6,7,8); 2 unset($at[1]); 3 print_r($at);

    显示效果:删除[1]  索引数和值

    接上例
    1
    //重新从0开始,排列索引值 2 $a=array_values($at); 3 print_r($a);

    显示效果:

    1 $at=array(1,2,1,4,5,6,7,8);
    2 $ae=array(11,12,13);
    3 /合并数组
    4 $aaa=array_merge($at,$ae);
    5 print_r($aaa);

    显示效果:

    //在数组中追加元素
    1
    $ae=array(11,12,13); 2 array_push($ae,"cccc"); 3 print_r($ae)

    显示效果:

    ⑫制表实例

     1 $ar=array(
     2     array("P1","张","女","汉","1988-2-3"),
     3     array("p2","李","男","回","1988-2-13"),
     4     array("p3","王","男","回","1988-12-13")
     5     );
     6 echo"<table width='100%' border='1'cellpadding='0'cellspacing='0'>";
     7 
     8 echo "<tr><td>代号</td><td>姓名</td><td>性别</td><td>民族</td><td>生日</td></tr>";
     9 for ($i=0; $i <count($ar) ; $i++) { 
    10     echo"<tr>";
    11      // echo "<td>{$ar[$i][0]}</td><td>{$ar[$i][1]}</td><td>{$ar[$i][2]}</td><td>{$ar[$i][3]}</td><td>{$ar[$i][4]}</td>"; //如果这样设置 只能有三组数据
    12 
    13     for($j=0;$j<count($ar[$i]);$j++)//可以通过for循环随意插入多组数组
    14     {
    15       echo"<td>{$ar[$i][$j]}</td>";
    16     };
    17     echo"</tr>";
    18 };

    显示效果:

    下拉菜单  提交取值①

     1 <select id="sel">
     2  <?php 
     3 $aa1=array(
     4     array("001","汉族"),
     5     array("002","回族"),
     6     array("003","苗族"),
     7     array("004","壮族"),
     8     array("005","满族")
     9     );
    10 for ($i=0; $i < count($aa1); $i++) { 
    11     echo "<option value='{$aa1[$i][0]}'>{$aa1[$i][1]}</option>";
    12 }
    13 ?>
    14     
    15 </select>
    16 <input type="button" id="btn" value="取值" onclick="show()" />
    17 <script type="text/javascript">
    18     function show(){
    19         var ss=document.getElementById("sel");
    20         alert(ss.value);
    21     };
    22     
    23 </script>

    显示效果:

    下拉菜单  提交取值② 

    提交到其他页:用到<form action="XXX.php  method="get"></form> 表单验证

     1 <form action="text4.php" method="get">
     2  <select name="nation" id="sel">
     3  <!-- //如果提交到其他页面,select中必须加name -->
     4  <?php 
     5 $aa1=array(
     6     array("001","汉族"),
     7     array("002","回族"),
     8     array("003","苗族"),
     9     array("004","壮族"),
    10     array("005","满族")
    11     );
    12 for ($i=0; $i < count($aa1); $i++) { 
    13     echo "<option value='{$aa1[$i][0]}'>{$aa1[$i][1]}</option>";
    14 } //value 值一般是主键值
    15 ?>
    16     
    17 </select>
    18 <input type="submit" id="btn" value="取值"  />
    19  </form>

    显示效果:

  • 相关阅读:
    openSSH学习笔记(一)
    Socket实例
    TCP/IP详解学习笔记(12)-TCP的超时与重传
    TCP/IP详解学习笔记(11)-TCP交互数据流,成块数据流
    TCP/IP详解学习笔记(10)-TCP连接的建立与中止
    TCP/IP详解学习笔记(8)-DNS域名系统
    TCP/IP详解学习笔记(9)-TCP协议概述
    存储过程的优缺点
    数据字典(转)
    abp viewmodel的写法
  • 原文地址:https://www.cnblogs.com/haodayikeshu/p/5298991.html
Copyright © 2020-2023  润新知