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:提交传值字符串

原文地址:https://www.cnblogs.com/Chenshuai7/p/5156062.html