PHP陣列
陣列的型別
1.數字索引陣列
PHP數字索引組預設索引值是從數字0開始的,並不需要特別指定,PHP會知道為索引的鍵名賦一個值,然後從這個值開始自動增量
- <?php
- $name=array(“raymond”,”lilila”,”tony”);
- echo “{$name[0]}和{$name[1]}和{$name[2]}”;
- ?>
2.關聯陣列
關聯陣列的鍵名可以是數值和字串混合的形式,而不像數字索引陣列的鍵名只能為數字,在一個陣列中,只要鍵名中有1個不是數字,那麼這個陣列就叫做關聯陣列
- <?php
- //建立一個關聯陣列$newArray
- $newArray=array(“first”=>1,”2”=>”第二個元素的值”,”third”=>3);
- //修改third的值
- $newArray[“third”]=5;
- echo $newArray[“third”];
- ?>
陣列的構造
1.一維陣列
- <?php
- $info[0]=’A’;
- $info[1]=’B’;
- $info[‘abc’]=’C’;
- echo $info[0].$info[1].$info[“abc”];
- ?>
2.二維陣列與多維陣列
- <?php
- $company=array(
- array(‘CompanyID’=>’1001’,
- ‘Companyname’=>’Ganji.com’,
- ‘Address’=>’北京清華科技園’
- ),
- array(‘CompanyID’=>’1002’,
- ‘Companyname’=>’Ganji.com’,
- ‘Address’=>’北京清華科技園’
- ),
- array(‘CompanyID’=>’1003’,
- ‘Companyname’=>’Ganji.com’,
- ‘Address’=>’北京清華科技園’
- )
- );
- print_r($company);
- ?>
3.快速建立陣列
使用range()函式
- <?php
- $testArray=range(0,6);
- print_r($testArray);
- ?>
- =============
- <?php
- $even=range(0,10,3);//其中3表示遞增的步長
- print_r($even);
- ?>
4.為陣列追加資料
- <?php
- //建立一個新的空陣列,將一個變數指定為陣列型別
- $languages=array();
- //增加3個元素
- $languages[]=’漢語’;
- $languages[]=’法語’;
- $languages[]=’英語’;
- printf(“
語言:%s.
\n”,implode(‘,’,$languages)); - ?>
5.修改陣列內容
- <?php
- //建立一個新的空陣列,將一個變數指定為陣列型別
- $languages=array();
- //增加3個元素
- $languages[]=’漢語’;
- $languages[]=’法語’;
- $languages[]=’英語’;
- printf(“
語言:%s.
\n”,implode(‘,’,$languages)); - $languages[2]=’東北話’;
- printf(“
語言:%s.
\n”,implode(‘,’,$languages)); - ?>
6.數字索引陣列排序
- <?php
- $states=array(“中國”,”China”,”香港”,”Hongkong”);
- sort($states);
- print_r($states);
- ?>
7.關聯陣列排序
- <?php
- $states=array(“LN”=>”LiaoNing”,”BJ”=>”BeiJing”,”SH”=>”ShangHai”);
- echo ‘asort():按陣列關聯性排序:
‘; - asort($states);
- print_r($states);
- echo ‘krsort():按陣列的索引值降序排序:
‘; - ksort($states);
- print_r($states);
- ?>
8.陣列隨機抽取shuffle()和array_rand()
- <?php
- $cards=array(“1”,”2”,”3”,”4”,”5”,”6”);
- //把$cards陣列打亂
- shuffle($cards);
- print_r($cards);
- ?>
- <?php
- $arry=array(‘A’,’B’,’C’,’D’);
- $result=array_rand($arry);
- //顯示$array中隨機產生的索引值元素
- echo $arry[$result];
- ?>
9.統計陣列元素出現的次數
array_count_values()
- <?php
- $province=array(“Shanghai”,”Liaoning”,”Guangdong”,”Liaoning”,”Beijing”);
- $provinceFrequency=array_count_values($province);
- print_r($provinceFrequency);
- ?>
10.資料合併array_merge
- <?php
- $array_a=array(
- 1=>’新浪網’,
- 2=>’搜狐網’,
- 3=>’網易’,
- 4=>’新華網’
- );
- $array_b=array(
- ‘82’=>’優酷網’,
- 85=>’新華網’,
- 87=>’六間房’,
- 90=>’土豆網’
- );
- //兩個陣列的簡單合併可以使用加號(+)操作符直接合並,如:
- $array_c=$array_a+$array_b;
- print_r($array_c);
- $array_d=array_merge($array_a,$array_b);
- print_r($array_d);
- ?>
11.查詢陣列中鍵名是否存在
- <?php
- $state[“LN”]=”瀋陽”;
- $state[“BJ”]=”北京”;
- $state[“SH”]=”上海”;
- if (array_key_exists(“LN”, $state)){
- echo “遼寧省的省會在$state[LN]”;
- }
- ?>
12.查詢陣列值是否存在
- <?php
- $grades=array(100.94,7,67,89,100);
- if (in_array(“100”, $grades)){
- echo “有的同學考試成績達到了滿分”;
- }
- ?>
13.計算陣列中數值元素的和
- <?php
- $grades=array(42,”hello”,42);
- $total=array_sum($grades);
- print $total;
- ?>
14.去除陣列中重複的元素值
- <?php
- $countries=array(‘USA’=>’English’,’Spain’=>’Spanish’,
- ‘China’=>’Chinese’,’UK’=>’English’,
- ‘Mexico’=>’Spanish’,’Germany’=>’German’,
- ‘Colombia’=>’Spanish’,’Canada’=>’English’,
- ‘Russia’=>’Russian’,’Austria’=>’German’,
- ‘France’=>’French’,’Argentina’=>’Spanish’);
- //清理重複的陣列元素
- $languages=array_unique($countries);
- printf(“
%s
\n”,var_export($languages,TRUE)); - //按索引值顯示移除元素的數
- $languages=array_unique(array_values($countries));
- printf(“
%s
\n”,var_export($languages,TRUE)); - //重新索引排序
- $languages=array_unique(array_values($countries));
- printf(“
%s
\n”,var_export($languages,TRUE)); - ?>
15.移動陣列內部指標
- <?php
- //候選的一堆數字索引陣列,它儲存了以下3列值
- $fruits=array(“apple”,”orange”,”banana”);
- print_r($fruits);
- $fruit=current($fruits);
- echo “當前的水果:$fruit
“; - $fruit=next($fruits);
- echo “下一個水果:$fruit
“; - $fruit=prev($fruits);
- echo “上一個水果:$fruit
“; - $fruit=current($fruits);
- echo “當前的水果:$fruit
“; - $fruit=end($fruits);
- echo “最後面的水果:$fruit
“; - ?>
本作品採用《CC 協議》,轉載必須註明作者和本文連結