Web プログラミングで最も重要なことは、データにアクセスして読み書きすることです。文字列、配列、ファイルなどの形式で保存する方法はたくさんあります。今日は、PHP データ アプリケーションで最も重要な方法の 1 つである配列について学びました。 PHP には多くの配列関数があります。以下は私が学んだことの要約です。今後の参考のために書き留めておきます。
配列の定義は array() メソッドを使用して定義されます。空の配列を定義できます:
.foreach Traversal:
<p class="sycode"> <? php $number = array ( 1 , 3 , 5 , 7 , 9 ); // 定义空数组 $result = array (); $color = array ( " red " , " blue " , " green " ); // 自定义键值 $language = ( 1 => " English " , 3 => " Chinese " , 5 => " Franch " ); // 定义二维数组 $two = array ( " color " => array ( " red " , " blue " ) , // 用逗号结尾 " week " => array ( " Monday " , " Friday " ) // 最后一句没有标点 ); ?> </p>
配列の作成に含まれる関数には、compact()、
1. Compact() 関数は 1 つ以上の変数 (配列を含む) を配列に変換します:Array Compact (mixed) $varname [,mixed $... ] )
<p class="sycode"> <? PHP $number = " 1,3,5,7,9 " ; $string = " I'm PHPer " ; $array = array ( " And " , " You? " ); $newArray = compact ( " number " , " string " , " array " ); print_r ( $newArray ); ?> </p>
compact() 関数は、2 つ以上の変数を配列に変換するために使用されます (もちろん配列変数も含まれます)。 。パラメーターは、$ を含む完全な名前ではなく、変数の名前です。
反対の関数はextract()で、名前が示すように、キー値を文字列名として、配列値を文字列の値として、配列を単一の文字列に変換します。
実行結果:
<p class="sycode"> Array ( [ number ] = > 1 , 3 , 5 , 7 , 9 [ string ] = > I'm PHPer [ array ] = > Array ( [ 0 ] = > And [ 1 ] = > You? ) ) </p>
array array_combine (array $keys, array $values)
<p class="sycode"> <? PHP $number = array ( " 1 " , " 3 " , " 5 " , " 7 " , " 9 " ); $array = array ( " I " , " Am " , " A " , " PHP " , " er " ); $newArray = array_combine ( $number , $array ); print_r ( $newArray ); ?> </p>
3.Range () 関数 ?? あまり言うことはありません。直接例に進みます。
<p class="sycode"> Array ( [ 1 ] = > I [ 3 ] = > Am [ 5 ] = > A [ 7 ] = > PHP [ 9 ] = > er ) </p>
<p class="sycode"> <? PHP $array1 = range ( 0 , 100 , 10 ); // 0为起始值,100为结束值,10为步进值(默认步进值为1). print_r ( $array1 ); echo " <br /> " ; $array2 = range ( " A " , " Z " ); print_r ( $array2 ); echo " <br /> " ; $array3 = range ( " z " , " a " ); print_r ( $array3 ); ?> </p>
3. 配列トラバーサル: 1.foreach トラバーサル: foreach (array_expression as $key => $value){}
reee
2.while ループトラバーサル:
while ループトラバーサルは一般的にlist 関数と組み合わせた例は次のとおりです
<p class="sycode"> Array ( [ 0 ] => 0 [ 1 ] => 10 [ 2 ] => 20 [ 3 ] => 30 [ 4 ] => 40 [ 5 ] => 50 [ 6 ] => 60 [ 7 ] => 70 [ 8 ] => 80 [ 9 ] => 90 [ 10 ] => 100 ) Array ( [ 0 ] => A [ 1 ] => B [ 2 ] => C [ 3 ] => D [ 4 ] => E [ 5 ] => F [ 6 ] => G [ 7 ] => H [ 8 ] => I [ 9 ] => J [ 10 ] => K [ 11 ] => L [ 12 ] => M [ 13 ] => N [ 14 ] => O [ 15 ] => P [ 16 ] => Q [ 17 ] => R [ 18 ] => S [ 19 ] => T [ 20 ] => U [ 21 ] => V [ 22 ] => W [ 23 ] => X [ 24 ] => Y [ 25 ] => Z ) Array ( [ 0 ] => z [ 1 ] => y [ 2 ] => x [ 3 ] => w [ 4 ] => v [ 5 ] => u [ 6 ] => t [ 7 ] => s [ 8 ] => r [ 9 ] => q [ 10 ] => p [ 11 ] => o [ 12 ] => n [ 13 ] => m [ 14 ] => l [ 15 ] => k [ 16 ] => j [ 17 ] => i [ 18 ] => h [ 19 ] => g [ 20 ] => f [ 21 ] => e [ 22 ] => d [ 23 ] => c [ 24 ] => b [ 25 ] => a ) </p>
実行結果:
Name
Gender
Age
Male
24
Xiao Wang
女性
25
男性 | 23 | 3.for循环遍历: |
数组中存在 |
<p class="sycode"> <? php $array = range ( 0 , 9 ); $num = rand ( 0 , 8 ); while ( $num -- ) next ( $array ); $key = key ( $array ); echo $key ; ?> </p>
此实例结果为动态结果,范围(0-8),不做结果演示。
实例三:list()函数把数组中的值赋给指定变量:
<p class="sycode"> <? PHP $staff = array ( array ( " 姓名 " , " 性别 " , " 年龄 " ) , array ( " 小张 " , " 男 " , 24 ) , array ( " 小王 " , " 女 " , 25 ) , array ( " 小李 " , " 男 " , 23 ) ); echo " <table border=2> " ; while ( list ( $keys , $value ) = each ( $staff )){ list ( $name , $sex , $age ) = $value ; echo " <tr><td> $name </td><td> $sex </td><td> $age </td></tr> " ; } echo " </table> " ; ?> </p>
<p class="sycode"> <? PHP $array = array ( " red " , " blue " , " yellow " , " Black " ); print_r ( $array ); echo " <br /> " ; $array = array_flip ( $array ); print_r ( $array ); ?> </p>
运行结果:
<p class="sycode"> Array ( [ 0 ] => red [ 1 ] => blue [ 2 ] => yellow [ 3 ] => Black ) Array ( [red] => 0 [blue] => 1 [yellow] => 2 [Black] => 3 ) </p>
<p class="sycode"> <? PHP $array = array ( " red " , " blue " , " yellow " , " Black " ); $result = array_keys ( $array ); print_r ( $result ); echo " <br /> " ; $result = array_values ( $array ); print_r ( $result ); ?> </p>
运行结果:
<p class="sycode"> Array ( [ 0 ] => 0 [ 1 ] => 1 [ 2 ] => 2 [ 3 ] => 3 ) Array ( [ 0 ] => red [ 1 ] => blue [ 2 ] => yellow [ 3 ] => Black ) </p>
实例六:array_search()搜索数值:
<p class="sycode"> <? PHP $array = array ( " red " , " blue " , " yellow " , " Black " ); $result = array_search ( " red " , $array ); if (( $result === NULL )){ echo " 不存在数值red " ; } else { echo " 存在数值 $result " ; } ?> </p>
结果:存在数值 0
函数array_search()返回的值可能为false或0或NULL,所以在判断时注意要用"==="
七、数组的排序: 实例一:sort()、rsort()/asort()、arsort()对数组排序:
<p class="sycode"> <? PHP $array = array ( " b " , " c " , " d " , " a " ); sort ( $array ); // 从低到高排序 print_r ( $array ); echo " <br /> " ; rsort ( $array ); // 逆向排序 print_r ( $array ); ?> </p>
结果:
<p class="sycode"> Array ( [ 0 ] => a [ 1 ] => b [ 2 ] => c [ 3 ] => d ) Array ( [ 0 ] => d [ 1 ] => c [ 2 ] => b [ 3 ] => a ) </p>
sort()、rsort()函数对数组进行从低到高的排序,返回结果为bool值;
asort()、arsort()函数是保留键值的排序,排序后键值不重新索引。
实例二:将数组顺序打乱??shuffle()函数:
<p class="sycode"> <? PHP $array = array ( " a " , " b " , " c " , " d " ); shuffle ( $array ); // 从低到高排序 print_r ( $array ); ?> </p>
结果为动态结果:
<p class="sycode"> Array ( [ 0 ] => c [ 1 ] => a [ 2 ] => d [ 3 ] => b ) </p>
shuffle的结果有点随机的意味,每次刷新都不一样。
<p class="sycode"> <? PHP $array = array ( " d " , " b " , " a " , " c " ); $array = array_reverse ( $array ); // 从低到高排序 print_r ( $array ); ?> </p>
运行结果:
<p class="sycode"> Array ( [ 0 ] => c [ 1 ] => a [ 2 ] => b [ 3 ] => d ) </p>
<p class="sycode"> <? PHP $array = array ( " sort2 " , " Sort5 " , " sort1 " , " sort4 " ); natsort ( $array ); // 从低到高排序 print_r ( $array ); echo " <br /> " ; natcasesort ( $array ); print_r ( $array ); ?> </p>
结果:
<p class="sycode"> Array ( [ 1 ] => Sort5 [ 2 ] => sort1 [ 0 ] => sort2 [ 3 ] => sort4 ) Array ( [ 2 ] => sort1 [ 0 ] => sort2 [ 3 ] => sort4 [ 1 ] => Sort5 ) </p>
natsort()、natcasesort()对数组进行自然排序,就是使用数字的正常排序算法。natcasesort会忽略大小写。
实例五:对数组进行键值排序ksort():
<p class="sycode"> <? PHP $array = array ( 1 => " sort2 " , 4 => " Sort5 " , 2 => " sort1 " , 3 => " sort4 " ); ksort ( $array ); // 从低到高排序 print_r ( $array ); ?> </p>
结果:
<p class="sycode"> Array ( [ 1 ] => sort2 [ 2 ] => sort1 [ 3 ] => sort4 [ 4 ] => Sort5 ) </p>
注意:ksort()函数重新建立了索引。
八、数组的其他用法:cout($array) --------统计数组的单元个数
array_diff($array1,$array2)----------统计数组之间的不同点,返回第一个数组中有而第二个数组中没有的。
array_diff_assoc($array1,$array2)---------同array_diff(),只是它对键值也比较
array_diff_key($array1,$array2)------------比较键值
array_product($array)-----------返回数组的所有数的乘积
array_sum($array)--------------所有数值的和
array_rand($array,$n)----------在$array数组中取出$n个数值,返回数组
array_intersect($array1,$array2)----------------取得两个数组的交集
array_intersect_assoc($array1,$array2)---------------在array_intersect 的基础上进行键值比较
array_intersect_key($array1,$array2)-----------------比较两个数组键值的交集
数组的使用在PHP中至关重要,由于PHP没有指针,所以数组承担了很大的数据操作任务。学好数组,才能把PHP应用的得心应手,这里所列均是常用的PHP数组相关的函数及用法,欢迎一起学习!