php數組的引用
『壹』 php 如何定義一個數組
php中定義數組的方法:x0dx0ax0dx0a1、PHP定義數組的格式:x0dx0a數組名=array();x0dx0a如:$aa=array();//這樣就定義了一個數組,x0dx0a之後給元素賦值:x0dx0a$aa[0]="9016";x0dx0a$aa[1]="9017";x0dx0a$aa[2]="9018";x0dx0ax0dx0a2、PHP輸出數組的方法:x0dx0aforeach($aa as $val)x0dx0a{x0dx0aecho$val;x0dx0a}x0dx0a也可以在定義數組時直接賦值x0dx0a$aa=array(0=>"9016",1=>"9017";2=>"9018");x0dx0ax0dx0a3、PHP的數組還可以用字元做下標,不一定要數字:x0dx0a$aa["name"]="Joan";x0dx0a$aa["num"]="9018";x0dx0a$aa["email"]="[email protected]";x0dx0a也可以這樣x0dx0a$aa=array("name"=>"joan","num"=>"9018","email"=>"[email protected]");x0dx0a將一個一維數組的元素也定義為數組,就是一個二維數組,x0dx0a$aa=array(0=>"a1",1=>"a2");x0dx0a$bb=array(0=>"b1",1=>"b2");x0dx0a$cc=array(0=>$aa;1=>$bb);此時,$cc[0]也是一個數組,$cc[1]也是一個數組,$cc就是一個二維數組。x0dx0a同理,三維,四維數組也可以繼續定義下去。x0dx0ax0dx0a4、數組的元素不僅於數字和字元串,可以是類的對象。
『貳』 php函數中數組作為參數時是值傳遞還是引用傳遞
默認情況下,數組是值傳遞,只有對象是引用傳遞。
『叄』 php怎樣把一個數組放入另一個數組的子數組裡面
<?php
$a=原數組
$b=array(array('a','b','c'), array(1,2,3));//被插入數組
foreach($a as $k=>$v){
$a[$k]['c']=&$b[$k]; //引用方式插入第三個項。
}
var_mp($a);//此時$a具有第三項了
『肆』 php 怎麼聲明數組
一、什麼是數組
數組就是一組數據的集合,把一系列數據組織起來,形成一個可操作的整體。數組的每個實體都包含兩項:鍵和值。
二、聲明數據
在PHP中聲明數組的方式主要有兩種:一是應用array()函數聲明數組,一是直接為數組元素賦值。
<1>array()函數聲明的數組的方式array([mixed...]) 參數mixed的語法為key=>value
如,<?php
$array=array("1"=>"編","2"=>"程","3"=>"詞","4"=>"典");
print_r($array);
echo "<br>";
echo $array[1]; //注意:下標默認是從0開始
echo $array[2];
echo $array[3];
echo $array[4];
?>
<2>直接為數組元素賦值。如果在創建數組時不知所創建數組的大小,或在實際編寫程序時數組的大小可能發生變化,採用這種數組創建的方法較好。
如,<?php
$array[1]="I";
$array[2]="love";
$array[3]="PHP";
print_r($array); //輸出所創建數組的結構
?>
三、數組的類型
PHP支持兩種數組:索引數組(indexed array)和聯合數組(associative array),前者使用數字作為鍵,後者使用字元串作為鍵。
四、輸出數組
在PHP中對數組元素輸出,可以通過echo和print語句來實現,但這只能對數組中某一元素進行輸出;要將數組結構輸出則要使用print_r()函數,其語法:print_r(mixed expression_r),參數expression_r為普通的整形、字元型或實型變數則輸出該變數本身,如果該參數為數組,則按一定鍵值和元素的順序顯示出該數組中的所有元素。
五、數組的構造
一維數組:
當一個數組的元素是變數時,則稱其為一維數組。
聲明一位數組: 類型說明符 數組名[常量表達式];
二維數組:
當一個數組的元素是一個一位數組時,則稱之為二維數組。
如,<?php
$str = array (
"網路編程語言"=>array ("PHP","JSP","ASP"),
"體育項目"=>array ("m"=>"足球","n"=>"籃球"));
print_r ( $str) ;
?>
六、遍歷數組
遍歷數組中的所有元素是常用的一種操作,在遍歷的過程中可以完成查詢或其他功能。在PHP中遍歷數組的方法有多種,下面介紹最常用的兩種方法。
<1>使用foreach結構遍歷數組;
<2>使用list()函數遍歷數組,list()函數僅能用於數字索引的數組,且數字索引從0開始。
例:綜合使用list()和each()認證用戶登錄:
<?php
//輸出用戶登錄信息
while(list($name,$value)=each($_POST)){
if($name!="submit"){
echo "$name=$value<br>";
}
}
?>
七、統計數組元素個數
在PHP中,使用count()函數對數組中的元素個數進行統計,語法為:int coun(mixed array[,int mode]),其中參數array為必要參數,mode為可選參數,若選中COUNT——RECURSIVE(或1),本函數將遞歸地對數組數組。如,
<?php
$array = array("php" => array("PHP函數參考大全","PHP程序開發範例寶典","PHP資料庫系統開發完全手冊"),
"asp" => array("ASP經驗技巧寶典")
); //聲明一個二維數組
echo count($array,COUNT_RECURSIVE);//遞歸統計數組元素的個數,運行結果為6
?>
八、數組排序
<1>使用sort()和rsort()分別對數組進行升序和降序,如,
<?php
$array=array(5,26,37,18,9,42,88,66);
$array1=sort($array);
for($i=0;$i<count($array);$i++){
echo $array[$i]."";
}
echo "<br>";
$array1=rsort($array);
for($i=0;$i<count($array);$i++){
echo $array[$i]." ";
}
?>
運行結果:
5 9 18 26 37 42 66 88
88 66 42 37 26 18 9 5
<2>使用ksort()和asort()對關聯數組排序
如果使用了相關數組,在排序後還要保持關鍵字和值的排序一致,這是就需要使用ksort()和asort()函
數,如,
<?php
$array=array('php'=>1,'jsp'=>2,'asp'=>3);
ksort($array);
print_r($array);
echo "<br>";
asort($array);
print_r($array);
?>
運行結果:
Array ( [asp] => 3 [jsp] => 2 [php] => 1 )
Array ( [php] => 1 [jsp] => 2 [asp] => 3 )
『伍』 php的foreach使用&引用數組最後一個元素的 $value 引用在 foreach 循環之後仍會保留
你好!
這段代碼中有2個foreach循環。產生這個結果的原因是引用變數沒有進行釋放造成的。
1.第一個foreach循環,使用了&$value的寫法,我們理解為指針變數,當循環結束後,
它指向的是數組中最後一個元素,即$arr[5],此時它的值為12.
2.第二個foreach循環,相當於每次循環都給$value進行賦值,由於$value的引用沒有釋放,
那麼就是間接的為arr[5]進行賦值,它每次的循環結果如下:
2,4,6,8,10,2
2,4,6,8,10,4
2,4,6,8,10,6
2,4,6,8,10,8
2,4,6,8,10,10
很好解決,就是在第一次foreach循環結束後,釋放$value的引用,即unset($value);
希望對你有幫助!
『陸』 php 裡面怎麼獲取數組裡面的數組的值
$arr=array("PHP","java","C++");
var_mp($arr);
//獲取數組中元素的值如下:
foreach($arras$key=>$value{
echo$value;//輸出即可
}
瀏覽器下看到的如下:
array (size=3)
0 => string 'PHP' (length=3)
1 => string 'java' (length=4)
2 => string 'C++' (length=3)
獲取的結果
PHPjavaC++
『柒』 PHP中要使用數組的話必須先定義一個變數為array()嗎
在php中聲明數組主要有2種方式:
一 是應用array()函數聲明數組。
二 是直接為數組元素賦值。
1, $array=array('php'=>1,'jsp'=>2,'asp'=>3);
這種方式, 數組的鍵和值都由程序員自己配置.
輸出時使用 echo $array['php'] 就可以獲取到 1 的值
2, $array=array(5,26,37,18,9,42,88,66);
這種方式, 程序員無需自己設置數組的'鍵' (或者叫 key )
輸出時使用 echo $array[1] 就可以獲取到 26 這個數字
不能說哪種更好, 編程時按實際情況去決定.
個人比較常用後者, 只有在要求格式化輸出時,才考慮第一種
望採納!