數值數組
數值數組儲存的每個元素都帶有一個數字 ID 鍵。
可以使用不同的方法來建立數值數組:
例子 1
在這個例子中,會自動分配 ID 鍵:
| 代碼如下 |
複製代碼 |
|
$names = array("Peter","Quagmire","Joe"); |
例子 2
在這個例子中,我們人工分配的 ID 鍵:
| 代碼如下 |
複製代碼 |
|
$names[0] = "Peter";
$names[1] = "Quagmire";
$names[2] = "Joe";可以在指令碼中使用這些 ID 鍵:
<?php
$names[0] = "Peter";
$names[1] = "Quagmire";
$names[2] = "Joe";
echo $names[1] . " and " . $names[2] . " are ". $names[0] . "'s neighbors";
?> |
數組排序
(1)sort(array $array[,int sorttype])
array 表示一個數組
<TABLE class=dataintable><TBODY><TR><TD> sorttype 取值:</TD><TD><P> SORT_REGULAR - 預設。以它們原來的類型進行處理(不改變類型)。 </P><P> SORT_NUMERIC - 把值作為數字來處理 </P><P> SORT_STRING - 把值作為字串來處理 </P><P> SORT_LOCALE_STRING - 把值作為字串來處理,基於本地設定<SUP style="FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif">*</SUP>。 </P></TD></TR></TBODY></TABLE>
(2)bool rsort(array $array[,sorttype])函數 逆向排序(值逆向)
sorttype 同上
(3)bool shuffle()函數 隨機排序
(4)array array_reverse (array $array[,bool preserve_keys]) 反向排列
preserve_keys 為true時 保留原來的鍵名
(5)array array_merge()合并數組
(6)array array_slice(array $array,int offset[,int length[,boolpreserve_keys ])
offset非負,這array中的位移變數從此開始,為負時從末端開始
length為正時,則表示序列中有很多單元,為負時表示從末端開始第幾個數處結束,若省略則從offset開始一直到最後
boolpreserve_keys 同上
數組迴圈輸出
| 代碼如下 |
複製代碼 |
<PRE class="brush:php; toolbar: true; auto-links: true;"><pre>
<?php
$shuzu=array('a'=>"wo",'b'=>"ni",'c'=>"ta",'d'=>"php",'e'=>"mysql");
echo "使用foreach函數遍曆數組";
echo "<br/>$nbsp;<br/>";
foreach($shuzu as $key=>$value)
{
echo "$key 代表: $value";
echo "<br/>$nbsp;<br/>";
}
?>
</pre></PRE> |
關聯陣列
關聯陣列,它的每個 ID 鍵都關聯一個值。
在儲存有關具體命名的值的資料時,使用數值數組不是最好的做法。
通過關聯陣列,我們可以把值作為鍵,並向它們賦值。
例子 1
在本例中,我們使用一個數組把年齡分配給不同的人:
| 代碼如下 |
複製代碼 |
| $ages = array("Peter"=>32, "Quagmire"=>30, "Joe"=>34); |
例子 2
本例與例子 1 相同,不過展示了另一種建立數組的方法:
| 代碼如下 |
複製代碼 |
|
$ages['Peter'] = "32";
$ages['Quagmire'] = "30";
$ages['Joe'] = "34";可以在指令碼中使用 ID 鍵:
<?php
$ages['Peter'] = "32";
$ages['Quagmire'] = "30";
$ages['Joe'] = "34";
echo "Peter is " . $ages['Peter'] . " years old.";
?>以上指令碼的輸出:
Peter is 32 years old. |
關聯陣列判斷為空白的代碼,然後我們詳細講講關於資料空的處理。
| 代碼如下 |
複製代碼 |
<?php教程
$array = array(0);
if(empty($array)){
echo "我空了n";
}else{
echo "我不空啊n";
}
$array['array']='我是數組';
print_r($array);
$array['array1']='我是數組1';
print_r($array);
unset($array['array1']);
print_r($array);
?> |
更多詳細內容請查看:http://www.111cn.net/phper/php/39841.htm
遍曆
遍曆使用者列表的時候,只需直接用 isset 查詢那個使用者名稱是否存在即可。
PHP 版代碼:
| 代碼如下 |
複製代碼 |
|
<?php
$arrayHash = array();
foreach($arrayN as $nameN) {
// 本行執行了 N 次。
$arrayHash[$nameN] = 1;
}
foreach($arrayM as $keyM => $nameM) {
if (isset($arrayHash[$nameM])) {
// 本行執行了 M 次!
unset($arrayM[$keyM]);
}
}
return $arrayM;
?>
多維 |
數組
在多維陣列中,主數組中的每個元素也是一個數組。在子數組中的每個元素也可以是數組,以此類推。
例子 1
在本例中,我們建立了一個帶有自動分配的 ID 鍵的多維陣列:
| 代碼如下 |
複製代碼 |
$families = array
(
"Griffin"=>array
(
"Peter",
"Lois",
"Megan"
),
"Quagmire"=>array
(
"Glenn"
),
"Brown"=>array
(
"Cleveland",
"Loretta",
"Junior"
)
);如果輸出這個數組的話,應該類似這樣:
Array
(
[Griffin] => Array
(
[0] => Peter
[1] => Lois
[2] => Megan
)
[Quagmire] => Array
(
[0] => Glenn
)
[Brown] => Array
(
[0] => Cleveland
[1] => Loretta
[2] => Junior
)
) |
例子 2
讓我們試著顯示上面的數組中的一個單一的值:
| 代碼如下 |
複製代碼 |
echo "Is " . $families['Griffin'][2] .
" a part of the Griffin family?"; 以上代碼的輸出:
Is Megan a part of the Griffin family? |
數組排序
| 代碼如下 |
複製代碼 |
|
<?php
$array[] = array("age"=>20,"name"=>"li");
$array[] = array("age"=>21,"name"=>"ai");
$array[] = array("age"=>20,"name"=>"ci");
$array[] = array("age"=>22,"name"=>"di");
foreach ($array as $key=>$value){
$age[$key] = $value['age'];
$name[$key] = $value['name'];
}
array_multisort($age,SORT_NUMERIC,SORT_DESC,$name,SORT_STRING,SORT_ASC,$array);
print_r($array);
?> |
更多array_multisort()可參考http://www.111cn.net/phper/php/42696.htm