• PHP——数组和数据结构


    <body>
    <?php
    $arr[0]=5;//赋值定义
    $arr[1]="aa";
    
    print_r($arr);
            echo "<br />";
    $array=array(1,2,3,4,5,6);//定义索引数组
    print_r($array);
            echo "<br />";
    $array1=array("aa"=>5,"bb"=>6,"cc"=>7);//关联数组,用key来取值
    print_r($array1["aa"]);
            echo "<br />";
    
    //遍历数组 
    //一、for循环
    
    for($i=0;$i<count($array);$i++)  //只适用于索引数组
    {
        echo $array[$i]."<br />";
        }
    
    //二、foreach循环  只取值
    foreach($array as $value)
    {
        echo $value."<br />";
    }
    //取key和value
    foreach($array as $key=>$value)
    {
        echo $key."->".$value."<br />";
        
    
    }
    //更为简便
    foreach($array as $key=>$value)
    {
    echo "{$key}=>{$value}<br />";//{}
    }
    //each()函数 取数组当前指针指向的元素信息,返回一个含键值对的数组,每执行一次,往下走一次
    $array2=array("aa"=>1,2,3,"d"=>4,5,6);
    each($array2);
    each($array2);
    print_r(each($array2));
            echo "<br />";
    
    //list() 特殊函数 唯一一个"="放在右边的函数,右边只能写一个数组          只针对于索引数组
              //将右边数组的每个元素映射到左边的变量
    $array3=array(1,2,3,4,5,6);
    
    list($a,$b,$c,,$e,$f)=$array3;
    echo $b;
           echo "<br />";
    //三、each(),list(),while循环遍历
    
    while(list($key,$value)=each($array3))
    {
        echo "{$key}->{$value}<br />";
        
        }
    //指针   each()函数会改变指针位置
    
    //current()会改变当前指针位置
    
    $array4=array(1,2,3,4,5,6);
        echo current($array4);//1
              echo "<br />";
        print_r(each($array4));//each()改变指针位置
              echo "<br />";
        echo current($array4);//指针变为2
              echo "<br />";
    //key() 返回当前指针位置的索引
        echo key($array4);//1
              echo "<br />";    
    //prev() 将指针倒回一位
     echo current($array4);//2
              echo "<br />";
     echo prev($array4);//1
               echo "<br />";//2
     //next(); 将指针向前移动一位
     echo next($array4);
               echo "<br />";
     //end()将指针放到结尾
     echo end($array4);//6
              echo "<br />";
     //reset()重置,将指针放到最前
     echo reset($array4);
          echo "<br />";//1
     //四、指针遍历
     while(next($array4))
     {
         
         }
    ?>
    <br />
    <?php 
     //预定义数组
     //全局变量
     $a=5;
     $b=6;
     
     function test()
     {
         global $a;
         global $b;
         return $a*$b;
         }
         echo test();
         echo "<br />";
    //预定义数组的全局变量
    //$GLOBALS[]     
     $c=5;
     $d=6;
     function test1()
     {
         return $GLOBALS['c']*$GLOBALS['d'];
         }
         echo test1();    
    //$_SERVER    服务器和执行环境信息  
     //提交传值
     //get 显示传输的数据 有长度限制
     //推荐用post
     
     //保存登陆状态
    ?>
    <form name="" method="post" action="CHULI.php">
    <input type="text" name="uid"><br  />
    <input type="text" name="pwd"><br  />
    <input type="submit" name="button" value="登陆"> 
    </form>
    </body>

    输出结果:

    笔记:‘

    数组:
    一:定义

    1.赋值定义
    $arr[0] = 5;
    $arr[1] = "aa";

    2.定义索引数组
    $arr = array(1,2,3,4,5);

    3.定义关联数组,只能用key来取值
    $arr = array("aa"=>5,"bb"=>6,7=>"cc");

    二:取值

    1.索引数组取值:
    $arr[0];用索引号来取值

    2.关联数组取值:
    $arr["aa"];用key取值

    三:遍历数组

    1.for循环
    for($i=0;$i<count($arr);$i++)
    {
    echo $arr[$i]."<br>";
    }
    优点:通用,简单。缺点:只能遍历索引数组

    2.foreach遍历
    foreach($arr as $value)
    {
    echo $value."<br>";
    }

    //或

    foreach($arr as $key=>$value)
    {
    echo "{$key}->{$value}<br>";
    }

    3.each()函数
    each($arr);取数组里面当前指针指向的元素的信息,返回一个包含键值对的数组,每执行一次,指针向下走一次,指向下一个元素。
    4.list()函数
    list($a,$b,$c,$d,$e,$f) = $arr;将索引数组的每个元素映射到list变量列表里面

    5.while遍历

    在while()语句每次循环中,each()语句将当前数组元素的键,赋给list()函数的第一个参数变量$key。并将当前数组元素中的值,赋给list()函数中的第二个参数变量$value,并且each()语句执行之后还会把数组内部的指针向后移动一步,因此下次while()语句循环时,将会得到该数组中下一个元素的键/值对。直到数组的结尾each()语句返回FALSE,while()语句停止循环,结束数组的遍历。
    while(list($key,$value) = each($arr))
    {
    echo "{$key}->{$value}<br>";
    }

    6.指针:
    current($arr)返回当前位置中的内容
    key($arr)返回当前位置的索引
    prev($arr);将指针倒回一位
    next($arr);将指针向前移动一位
    end($arr);将指针指向最后一个单元
    reset($arr);将指针指向第一个单元

    四:预定义数组
    global $b;声明全局变量

    五:其它
    querystring:提交传值字符串

  • 相关阅读:
    const
    ImportError: No module named google.protobuf
    ImportError: No module named google.protobuf
    多线程同步与单线程异步对比
    多线程同步与单线程异步对比
    再谈select, iocp, epoll,kqueue及各种I/O复用机制
    再谈select, iocp, epoll,kqueue及各种I/O复用机制
    poj1180
    poj3254
    poj3321
  • 原文地址:https://www.cnblogs.com/Chenshuai7/p/5156062.html
Copyright © 2020-2023  润新知