數組定義:
$arr = array(元素1,元素2,元素3……);
輸出數組:print_r()函數
$arr1 = array('uclass'=>'DIV+CSS','age'=>'44','birth'=>'1994-2-30');
類似於python中的字典。
$arr2 = array(array('uname'=>'小明','age'=>'15'),'two'=>array('uname'=>'小紅','age'=>'14'),33);
echo '<pre>';
print_r($arr2);
輸出結果:
Array
(
[0] => Array
(
[uname] => 小明
[age] => 15
)
[two] => Array
(
[uname] => 小紅
[age] => 14
)
[1] => 33
)
也可以直接定義數組元素:
$arr3[0] = 'abc';
$arr3[1] = 'cde';
$arr3[5] = 'opq';
print_r($arr3);
輸出結果:
Array
(
[0] => abc
[1] => cde
[5] => opq
)
如果不指定位置而給未定義的數組元素賦值,那麼將依次對數組的元素進行賦值。
$arr4[] = 'PHP';
$arr4[] = 'HTML5';
$arr4[] = 'MySQL';
print_r($arr4);
輸出結果:
Array
(
[0] => PHP
[1] => HTML5
[2] => MySQL
)
當然也可以定義多維數組:
$arr5['PHP'][] = 'PHP基礎';
$arr5['PHP'][] = '字符串處理';
$arr5['PHP'][] = '圖像處理';
$arr5['PHP'][] = '數據庫操作';
$arr5['PHP'][] = '模板引擎';
$arr5['PHP'][] = '案例';
$arr5['DIV+CSS'][] = 'HTML基礎';
$arr5['DIV+CSS'][] = 'CSS佈局';
$arr5['DIV+CSS'][] = 'hack';
$arr5['DIV+CSS'][] = '整站標準佈局實戰';
print_r($arr5);
結果:
Array
(
[PHP] => Array
(
[0] => PHP基礎
[1] => 字符串處理
[2] => 圖像處理
[3] => 數據庫操作
[4] => 模板引擎
[5] => 案例
)
[DIV+CSS] => Array
(
[0] => HTML基礎
[1] => CSS佈局
[2] => hack
[3] => 整站標準佈局實戰
)
)
數組的遍歷:
foreach($arr5['PHP'] as $value){
echo "<span style='color:#f00;'>".$value."</span><br/>";
}
結果:
PHP基礎
字符串處理
圖像處理
數據庫操作
模板引擎
案例
對於關聯數組,就需要對foreach進行一下修改:
$arr_1 = array('uclass'=>'DIV+CSS','age'=>'44','birth'=>'1994-2-30');
foreach($arr_1 as $key=>$value){
echo $key.":".$value."<br/>";
}
結果:
uclass:DIV+CSS
age:44
birth:1994-2-30
如果是多維數組,則需要用到is_array()函數,進一步修改:
foreach($arr5 as $key => $value){
if(is_array($value)){
echo $key."<br/>";
foreach($value as $sub_key => $sub_value){
echo " ".$sub_key.":".$sub_value."<br/>";
}
}else{
echo $key.":".$value;
}
}
輸出結果:
PHP
0:PHP基礎
1:字符串處理
2:圖像處理
3:數據庫操作
4:模板引擎
5:案例
DIV+CSS
0:HTML基礎
1:CSS佈局
2:hack
3:整站標準佈局實戰
當然也可以通過遞歸函數來實現:
function print_array_value($arr){
foreach($arr as $key => $value){
if(is_array($value)){
echo $key.":<br/>";
print_array_value($value);
}else{
echo " ";
echo $key.":".$value."<br/>";
}
}
return;
}
print_array_value($arr5);
效果是完全一樣的。當然還可以嘗試更多的例如爲下一級添加特殊樣式等。