您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“php數(shù)組聲明、遍歷、數(shù)組全局變量的使用方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“php數(shù)組聲明、遍歷、數(shù)組全局變量的使用方法”吧!
php教程:數(shù)組聲明,遍歷,數(shù)組全局變量
復制代碼 代碼如下:
<?
/*
* 一、數(shù)組的概述
* 1.數(shù)組的本質(zhì):管理和操作一組變量,成批處理
* 2.數(shù)組時復合類型(可以存儲多個)
* 3.數(shù)組中可以存儲任意長度的數(shù)據(jù),也可以存儲任意類型的數(shù)據(jù)
* 4.數(shù)組可以完成其他語言數(shù)據(jù)結(jié)構(gòu)的功能(鏈表,隊列,棧,集合類)
*
*
*
* 二、數(shù)組的分類
* 數(shù)組中有多個單元,(單元稱為元素)
* 每個元素(下標[鍵]和值)
* 單訪問元素的時候,都是通過下標(鍵)來訪問元素
* 1.一維數(shù)組,二維數(shù)組,三維數(shù)組。。。多維數(shù)組
* (數(shù)組的數(shù)組,就是在數(shù)組中存有其他的數(shù)組)
* 2.PHP中有兩種數(shù)組
* 索引數(shù)組:就是下標是順序整數(shù)的索引
* 關(guān)聯(lián)數(shù)組:就是下標是字符串作為索引
*
* 下標(整數(shù),字符串)只有這兩種
*
*
* 三、數(shù)組多種聲明方式
*
* 1.直接為數(shù)組元素賦值聲明
* 如果索引下標不給出,就會從0開始順序索引
* 如果給出索引下標,下一個就會從最大的開始增1
* 如果后面出現(xiàn)前面的下標,如果是賦值就是為前面的元素重新賦值
* 混合聲明時,索引和關(guān)聯(lián)不互相影響(不影響索引下標的聲明)
*
* 2.使用array()函數(shù)聲明
* 默認是索引數(shù)組
* 如果為關(guān)聯(lián)數(shù)組和索引數(shù)組指定下標,使用 鍵=>值
* 多個成員之間使用" , "分割
* 3.使用其他的函數(shù)聲明
*
*
*
*
*/
//索引數(shù)組
$user[0]=1;//用戶序號
$user[1]="zhangsan";//用戶名
$user[2]=10;//年齡
$user[3]="nan";//性別
echo '<pre>';
print_r($user);
echo '</pre>';
//關(guān)聯(lián)數(shù)組
$user["id"]=1;
$user["name"]="zhangsan";
$user["age"]=10;
$user["sex"];
$user["age"]=90;//賦值
echo $user["name"];//輸出
//使用array()聲明數(shù)組
$user=array(1,"zhangsan",10,"nan");
//使用array()聲明關(guān)聯(lián)數(shù)組
$user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
//聲明多維數(shù)組(多條記錄),來保存一個表中的多條用戶信息記錄
$user=array(
//用$user[0]調(diào)用這一行,比如調(diào)用這條記錄中的姓名,$user[0][1]
array(1,"zhangsan",10,"nan"),
//用$user[1]調(diào)用這一行,比如調(diào)用這條記錄中的姓名,$user[1][1]
array(2,"lisi",20,"nv")
);
//數(shù)組保存多個表,每個表有多條記錄
$info=array(
"user"=>array(
array(1,"zhangsan",10,"nan"),
array(2,"lisi",20,"nv")
),
"score"=>array(
array(1,90,80,70),
array(2,60,40,70)
)
);
echo $info["score"][1][1];//輸出60,
?>
數(shù)組超級全局變量
<?php
/* 預定義數(shù)組:
* 自動全局變量---超全局數(shù)組
*
* 1.包含了來自WEB服務(wù)器,客戶端,運行環(huán)境和用戶輸入的數(shù)據(jù)
* 2.這些數(shù)組比較特別
* 3.全局范圍內(nèi)自動生效,都可以直接使用這些數(shù)組
* 4.用戶不能自定義這些數(shù)組,但這些數(shù)組的操作方式和自己定義的數(shù)組操作的方式一樣
* 5.在函數(shù)中直接可以使用這些數(shù)組
*
* $_GET //經(jīng)由URL請求提交至腳本的變量
* $_POST //經(jīng)由HTTP POST 方法提交到腳本的變量
* $_REQUEST //經(jīng)由GET , POST和COOKIE機制提交 到腳本的變量
* $_FILES //經(jīng)由http post方法文件上傳而提交至腳本的變量
* $_COOKIE
* $_SESSION
* $_ENV //執(zhí)行環(huán)境提交至腳本的變量
* $_SERVER //變量由WEB服務(wù)器設(shè)定的,或直接和當前腳本的執(zhí)行環(huán)境相關(guān)聯(lián)
* $GLOBALS //只要是當前腳本有效的變量都在這里,數(shù)組的鍵名為全局腳本的名稱
*
*
*/
//超全局數(shù)組在函數(shù)內(nèi)部可以直接調(diào)用
$arr=array(10,20);//一般數(shù)組
$_GET=array(50,90);//超全局數(shù)組
function demo(){
global $arr;//調(diào)用全局變量要先包含
print_r($arr);
print_r($_GET);//直接調(diào)用超全局數(shù)組不用包含
}
?>
<!-- **********頁面?zhèn)髦礸et請求*************** -->
<?php
//直接把傳的值當變量用,當php.ini配置文件中register_global=on時有用。
echo $username."<br>";
echo $email."<br>";
echo $page."<br>";
//最穩(wěn)定的取值方法
echo $_GET["username"]."<br>";
echo $_GET["email"]."<br>";
echo $_GET["page"]."<br>";
?>
<a href="demo.php?username=zhangsan&email=aaa@bbb.com&page=45">this is a $_GET test</a>
<!-- ***********頁面?zhèn)髦祊ost請求**************** -->
<form action="demo.php" method="post">
username:<input type="text" name="uname" /> <br/>
password:<input type="password" name="pass" /> <br/>
<input type="submit" value="login" /> <br />
</form>
<?php
print_r($_GET);//不能接收到
print_r($_POST);//這樣才能接收到
?>
<?php
//$_ENV的使用
echo'<pre>';
print_r($_ENV);
echo'</pre>';
//顯示當前環(huán)境
// 也可以單個遍歷
?>
<?php
//利用$GLOBALS超全局數(shù)組在函數(shù)內(nèi)部調(diào)用全局變量
$a=100;
$b=200;
$c=300;
function demo()
{
//直接調(diào)用全局變量
echo $GLOBALS["a"]."<br>";
echo $GLOABLS["b"]."<br>";
echo $GLOABLS["c"]."<br>";
}
?>
數(shù)組遍歷
<?php
/* 數(shù)組的遍歷
*
* 1.使用for語句循環(huán)遍歷數(shù)組
* 1.其他語言(只有這一種方式)
* 2.PHP中這種方式不是首選的方式
* 3.數(shù)組必須是索引數(shù)組,而且下標必須是連續(xù)的。
* (索引數(shù)組下標可以不連續(xù),數(shù)組還有關(guān)聯(lián)數(shù)組,這兩種不能遍歷)
*
* 2.使用foreach語句循環(huán)遍歷數(shù)組
* foreacho(數(shù)組變量 as 變量值){
* //循環(huán)體
* }
* 1.循環(huán)次數(shù)由數(shù)組的元素個數(shù)決定
* 2.每一次循環(huán)都會將數(shù)組中的元素分別賦值給后面變量
*
* foreach(數(shù)組變量 as 下標變量=> 值變量){
* }
*
*
* 3.while() list() each() 組合循環(huán)遍歷數(shù)組
*
* each()函數(shù):
* 1.需要一個數(shù)組作為參數(shù)
* 2.返回來的也是一個數(shù)組
* 3.返回來的數(shù)組是0,1,key,value四個下標(固定的)
* 0和key下標是當前參數(shù)數(shù)組元素的鍵
* 1和value下標是當前參數(shù)數(shù)組元素的值
* 4.默認當前元素就是第一個元素
* 5.每執(zhí)行一次后就會將當前元素向后移動
* 6.如果到最后的元素再執(zhí)行這個函數(shù),則返回false
* list()函數(shù):
* 1. list()=array();需要將一個數(shù)組賦值給這個函數(shù)
* 2.數(shù)組中的元素個數(shù),要和list()函數(shù)中的參數(shù)個數(shù)相同
* 3.數(shù)組中的每個元素值會賦值list()函數(shù)中的每個參數(shù),list()將每個參數(shù)轉(zhuǎn)為變量
* 4.list()只能接受索引數(shù)組
* 5.按索引的下標順序來給參數(shù)賦值
*
*
*
*/
//for語句遍歷數(shù)組
$user=array(1,"zhangsan",40,"nan");
for($i=0;$i<4;$i++)
{
echo"$user[{$i}]=".$user[$i]."<br>";
}
//使用foreach
$user=array(1,"zhangsan",40,"nan");
foreach($user as $val)//$val是自定義變量
{
echo $val."<br>";//輸出與下標無關(guān)
}
foreach($user as $key=>$val)//$val $key 都是自定義變量
{
echo $key."=====>".$val."<br>";
}
//foreach遍歷多維數(shù)組
$info=array(
"user"=>array(
//$user[0]
array(1, "zansan", 10, "nan"),
//$user[1][1]
array(2, "lisi", 20, "nv"), //$user[1]
//$user[2]
array(3, "wangwu", 30, "nan")
),
"score"=>array(
array(1, 100, 90, 80),
array(2, 99, 88, 11),
array(3, 10, 50, 88)
),
"connect"=>array(
array(1, '110', 'aaa@bbb.com'),
array(2, '120', 'bbb@ccc.com'),
array(3, '119', 'ccc@ddd.com')
)
);
foreach($info as $tableName=>$table)
{
echo '<table align="center" width="500" border="1">';
echo '<caption><h2>'.$tableName.'</h2></caption>';
foreach($table as $row)
{
echo '<tr>';
foreach($row as $col)
{
echo '<td>'.$col.'</td>';
}
echo '</tr>';
}
echo '</table>';
}
//each()的使用
$user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
$a=each($user);//Array ( [1] => 1 [value] => 1 [0] => id [key] => id ) 默認是第一個元素的值
print_r($a);
$b=each($user);
print_r($b);//Array ( [1] => zhangsan [value] => zhangsan [0] => name [key] => name ) 每執(zhí)行一次,向后遍歷一個
$c=each($user);
print_r($c);//Array ( [1] => 10 [value] => 10 [0] => age [key] => age )
$d=each($user);
print_r($d);//Array ( [1] => nan [value] => nan [0] => sex [key] => sex )
$e=each($user);
var_dump($e);//bool(false) 當沒有元素時,返回的值
//each()配合while遍歷
$user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
while($arr=each($user))
{
//echo $arr[0]."====>".$arr[1]."<br>";//通過0,1 來顯示 鍵(下標) 和 值
echo $arr["key"]."===>".$arr["value"]."<br>";//通過key,value 來顯示 鍵 值
}
//list()函數(shù)的使用
list($name,$age,$sex)=array("zhangsan",10,"nnnnn");
echo $name."<br>";
echo $age."<br>";
echo $sex."<br>";
//另一種使用方法
list(,,$sex)=array("zhangsan",10,"nnnnn");
echo $sex."<br>";//只把性別轉(zhuǎn)換為變量
//ip判斷
$ip="192.168.1.128";
list(,,,$d)=explode(".",$ip);//explode表示用 . 來分隔,并返回一個數(shù)組
echo $d;//取出128
//list()只能接收索引數(shù)組的例子
$user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
list($key,$value)=each($user);//Array( [1]=>1 [0]=>id) 按照索引下標的順序給list中的參數(shù)賦值,所以先是 0鍵 然后是 1值
echo $key."--->".$value;
//while list() each() 組合使用
$user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
while(list($key,$value)=each($user))
{
echo $key."--->".$value."<br>";
}
//多次循環(huán)只顯示一次的解決方法
//使用數(shù)組的內(nèi)部指針控制函數(shù)
//next(數(shù)組);數(shù)組指針移動到下一個
//prev(數(shù)組);數(shù)組指針移動到上一個
//reset(數(shù)組);數(shù)組指針移動到第一個(復位)
//end(數(shù)組);數(shù)組指針移動到最后一個
//current(數(shù)組);獲取當前元素的值,當前元素時指數(shù)組指針指向的元素。
//key(數(shù)組);獲取當前元素的鍵值(下標)
$user=array("id"=>1,"name"=>"zhangsan","age"=>10,"sex"=>"nan");
while(list($key,$value)=each($user))
{
echo $key."--->".$value."<br>";
}
//在這里將數(shù)組指針移動到第一個以下循環(huán)就能輸出
//reset($user)
while(list($key,$value)=each($user))//因為each()到最后一個返回false,所以循環(huán)直接跳出
{
echo $key."--->".$value."<br>";
}
while(list($key,$value)=each($user))//因為each()到最后一個返回false,所以循環(huán)直接跳出
{
echo $key."--->".$value."<br>";
}
echo current($user)."=====>".key($user);
?>
到此,相信大家對“php數(shù)組聲明、遍歷、數(shù)組全局變量的使用方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。