php學習 數組課件第1/2頁

來源:互聯網
上載者:User

下標:數組中的識別名稱 也就是字串或整數在數組中的代號

數組中有幾個索引值就被稱為幾維數組。
索引值:索引是對資料庫表中一列或多列的值進行排序的一種結構。

數組分類
在PHP數組被分為兩種:
索引數組:索引(indexed)索引值是整數,以0開始,當通過位置來標識東西時用索引數組。
關聯陣列:關聯(associative)關聯以字串做索引值,索引值為列名,用語訪問列的資料。

數組通常用賦值的方式
一般情況下數組賦值有兩種方式:
$a[1]="dsadsadsa";
$b[2]="dsadsadsad";
使用array函數:
$a=array("dsads","dsadsa",321312);
一維數組:數組的索引值(下標)只有一個的時候稱之為一維數組。
數組直接賦值的格式:
$陣列變數名[索引值]=資料內容;
注意:索引值可以是字串也可以是整數 但是1與“1”是不同的 它們一個屬於整數一個屬於字串。

同名沒有給予索引值的數組是按照順序排列的。
執行個體:
<?php
$a=array(1,2,3,4,5,6);
$b=array("one", "two", "three");
$c=array(0=>"aaa",1=>"bbb",2=>"ccc");
$d=array("aaa",6=>"bbb","ccc");
$e=array("name"=>"zhang", "age"=>20);
?>
二維數組
多維陣列的格式:
$a[0][]="dsadas";
$a[0][]="dsadsa"; 這組是$a下的0索引值下的1和2
如果用array函式宣告格式如下:
$a=array("dsadsa","dsadas",21,array("dsadsa","dsadas"));

數組的遍曆
foreach迴圈結構:
foreach 僅用與數組的迴圈 兩種格式
foreach(array_exprssion(數組表達) as $value);
foreach(array_exprssion(數組表達) as $key=>$value);
第一種格式遍曆給定了array_exprssion數組。每一次迴圈中當前的值都被賦給我$calue,並且數組內部的指標向前移動一步。
第二種格式做同樣的事,只除了當前單元的索引值也會在每次迴圈中被賦給變數 $key。
當 foreach 開始執行時,數組內部的指標會自動指向第一個單元。此外注意foreach 所操作的是指定數組的一個拷貝,而不是該數組本身
$arr=array(10,20,30,40,50,60);
foreach($arr as $k=>$v){
echo "$k=>$v<br>";
}

輸出結果:0=>10 1=>20 2=>30 3=>40 4=>50 5=>60//下標=>整數
聯合使用list(),each()和while迴圈
each():
$arr=array(1,2,3,4,5);
$a=each($arr);
print_r($a);
輸出結果:Array ( [1] => 1 [value] => 1 [0] => 0 [key] => 0 )
拿取數組第一位的值value 下標key
list():
$arr3=array("a","b","c");
list($key,$value)=each($arr3);

echo $key."<br>".$value;
輸出結果:0 a list()可以說是用一步操作給一組變數賦值 僅能用於數字索引的數組並假定數字索引從 0 開始。
while迴圈
$arr=array(1,2,3,4,5,6,7,8,9,);
while(list($key,$value)=each($arr)){
$key++;
echo $key."=>".$value;
echo "<br>";
}
echo "<br>";
輸出結果:1=>1 2=>2 3=>3 4=>4 5=>5 6=>6 7=>7 8=>8 9=>9
reset()數組指標重新導向
在執行 each() 之後,數組指標將停留在數組中的下一個單元或者當碰到數組結尾時停留在最後一個單元。
is_array檢測變數是否為數組真返回ture假false
$arr=array(1,2,3,4,5,6,"saas");
while(list($k,$v) = each($arr))
{
if(is_array($arr))
{
$x += $v;
echo $x;
}
else
{
$x += $k;
}
}
這個範例不能完全體現is_array的功能,但是可以參考。
數組的指標
next():負責將指標向後移動
prve():負責將指標向前移動
end():會將指標指向數組最後一個元素
reset():將目前指標無條件移至第一個索引位置
文法格式:mixed next(數組名稱)
$arr=(array(1,2,3,4,5));
echo end($arr);
輸出結果:5
key()與current()和count()
key()的函數是讀取目前指標所指向的資料的索引值。
current()的函數則是讀取目前指標所指向資料的內容資料。
count()的函數是用來計算數組中所有元素的個數,也就是說函數會傳回目標數組的長度值。
格式:int count(數組名稱);

key():從關聯陣列中取得鍵名
$array = array('fruit1' => 'apple','fruit2' => 'orange','fruit3' => 'grape','fruit4' => 'apple','fruit5' => 'apple');
while ($fruit_name = current($array)) {
if ($fruit_name == 'apple') {
echo key($array).'<br />';
}
next($array);
}
輸出結果:fruit1,fruit4,fruit5

current():返回數組中的當前單元
$transport = array('foot', 'bike', 'car', 'plane');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport); // $mode = 'bike';
$mode = current($transport); // $mode = 'bike';
$mode = prev($transport); // $mode = 'foot';
$mode = end($transport); // $mode = 'plane';
$mode = current($transport); // $mode = 'plane';
注意看範例 返回數組中的當前單元

count():計算數組中單元的個數
$arr=array(1,2,3,4,5,6);
echo count($arr);
輸出結果:6

array_change_key_case()
array_change_key_case返回字串鍵名全為小寫或者大寫的數組
其中包含的形態函數有兩個[CASE_UPPER]轉換為大寫,[CAS_LOWER]轉換為小寫。
$input_array = array("FirSt" => 1, "SecOnd" => 4);
print_r(array_change_key_case($input_array, CASE_UPPER));
輸出結果:Array ( [FIRST] => 1 [SECOND] => 4 )

array_chunk()
array_chunk()次函數會將目標數組的資料內容,以指定索引個數,分解成數個小型數組包含在原數組中。
$arr=array(1,2,3,4,5,6);
$a=array_chunk($arr,3);
print_r($a);
輸出結果:Array ( [0] => Array ( [0] => 1 [1] => 2 [2] => 3 ) [1] => Array ( [0] => 4 [1] => 5 [2] => 6 ) )
也就是等於用數組單元個數的總和除以3

array_count_values
array_count_values 用來計算目標數組中各值出現的次數
文法格式:array_count_values(目標數組)
此函數所傳回結果值,會以原數組的內容資料作為索引,以數組的形態表現。
$arr=array(1,2,3,3,2,6);
print_r(array_count_values($arr));
輸出結果:Array ( [1] => 1 [2] => 2 [3] => 2 [6] => 1 )

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.