好久沒有寫PHP代碼了虚循,最近又翻到了以前的源代碼彤蔽,看著代碼就想著把以前的知識再復(fù)習(xí)一下腊满,今天就看了數(shù)組,之后會一一連載補(bǔ)上來的
1.數(shù)組的聲明
數(shù)組的聲明1:
- 索引數(shù)組(以數(shù)字為下標(biāo)),關(guān)聯(lián)數(shù)組(以字符串為下標(biāo)),一個數(shù)組里面即可有索引數(shù)組又有關(guān)聯(lián)數(shù)組,下標(biāo)可以不連續(xù).
$arr[0]=10;
$arr['a']=34;
$arr["aa"]=34;
$arr[2]=11;
$c=$arr{2};
echo "$c"."</br>";
print_r($arr);
echo "</br>";
echo $arr[2]."</br>";
結(jié)果:
11
Array ( [0] => 10 [a] => 34 [aa] => 34 [2] => 11 ) 11
數(shù)組的聲明2:
- array()函數(shù)里面?zhèn)鞯膮?shù)可以是鍵值對,也可以是值蟹漓。
- array()函數(shù)可以用來創(chuàng)建一個空數(shù)組。
$a=array(1=>1,2=>3,'first'=>2);
print_r($a);
echo "</br>";
$k=array();
結(jié)果:
Array ( [1] => 1 [2] => 3 [first] => 2 )
數(shù)組的聲明3:
- 在新版的php中是支持c風(fēng)格的數(shù)組的聲明
$b=[1,2,3,4=>4];
print_r($b);
echo "</br>";
結(jié)果:
Array ( [0] => 1 [1] => 2 [2] => 3 [4] => 4 )
2.索引
- 在數(shù)組里面沒有索引的話是以前面的為基準(zhǔn)增加,前面沒有基準(zhǔn)那么就是從零開始
$br[]=22;
$br[3]=10;
$br[]=33;
print_r($br);
echo "</br>";
結(jié)果:
Array ( [0] => 22 [3] => 10 [4] => 33 )
3.函數(shù)與數(shù)組
- 在PHP中數(shù)組是可以做返回值的,這一點(diǎn)與c++源内、c等都是不一樣的
function fun(){
return array(1,2);
}
$funa=fun();
print_r($funa);
echo "</br>";
echo fun()[1]."</br>";
結(jié)果:
Array ( [0] => 1 [1] => 2 )
2
4.刪除數(shù)組元素
- unset 是可以把數(shù)組中的數(shù)據(jù)給清除掉但是這個變量還是存在的
- 使用array_values()可以讓數(shù)組重新排序但是一定要注意,
數(shù)組的函數(shù)基本全部都是創(chuàng)建一個新的數(shù)組然后在新的數(shù)組里面進(jìn)行更改,
所以要返回到一個新的數(shù)組里面葡粒。
$m[0]=11;
$m[1]=12;
$m[2]=13;
print_r($m);
echo "</br>";
unset($m[1]);
print_r($m);
echo "</br>";
$n=array_values($m);
print_r($n);
echo "</br>";
結(jié)果:
Array ( [0] => 11 [1] => 12 [2] => 13 )
Array ( [0] => 11 [2] => 13 )
Array ( [0] => 11 [1] => 13 )
5.數(shù)組賦值
- 數(shù)組之間的賦值,是可以直接進(jìn)行賦值的與c/c++不同
$o=array(1,2);
$t=$o;
print_r($t);
echo "</br>";
結(jié)果:
Array ( [0] => 1 [1] => 2 )
6.二維數(shù)組
- 二維數(shù)組:這里只舉一個例子就是其他與之相似上面的有三種方法
- 就是將子數(shù)組作為二維數(shù)組的元素,把子數(shù)組看做一個整體。
- 一個數(shù)組里面即可以有數(shù)組也可以有普通元素,這一點(diǎn)也是很有用的,
那些普通的元素可以儲存你所存的子數(shù)組的數(shù)據(jù)信息
print_r($group[0]);
echo "</br>";
print_r($group[1]);
echo "</br>";
echo $group['info'];
echo "</br>";
結(jié)果:
Array ( [0] => 1 [1] => 2 )
Array ( [0] => 1 [1] => 2 )
Array ( [0] => 2 [1] => 3 )
this arr is num
7.數(shù)組的遍歷
- 數(shù)組的兩種遍歷方式:
1.for遍歷
2.foreach遍歷
$arr=array(1,2,3,4);
for ($i=0;$i<count($arr);$i++){
echo $arr[$i]." ";
}
echo "</br>";
foreach ($arr as $value){
echo $value." ";
}
echo "</br>";
foreach ($arr as $key=>$value) {
echo "key:$key value:$value"."</br>";
}
echo "</br>";
結(jié)果:
1 2 3 4
1 2 3 4
key:0 value:1
key:1 value:2
key:2 value:3
key:3 value:4
8.給一個簡單的Dome
就是將一個數(shù)組導(dǎo)成表格的形式膜钓,在數(shù)據(jù)庫里比較用嗽交,所以很有用。
$group=array(
'groupname'=>'First',
'price'=>300,
array('name'=>'aa','age'=>3,'sex'=>1),
array('name'=>'aa','age'=>3,'sex'=>1),
array('name'=>'aa','age'=>3,'sex'=>1),
array('name'=>'aa','age'=>3,'sex'=>1),
array('name'=>'aa','age'=>3,'sex'=>1),
array('name'=>'aa','age'=>3,'sex'=>1),
);
echo '<table border="1" align="center" width="800px">';
foreach($group as $row){
if(is_array($row)){
echo '<tr>';
foreach($row as $col){
echo '<th>';
echo "$col";
echo '</th>';
}
echo '</tr>';
}else{
echo '<tr colspan="3">';
echo $row;
echo '</tr>';
}
}
echo '</table>';