PHP の配列関数は非常によく使われるので、PHP の配列関数を研究し、ここで皆さんに共有したいと思います。今日は PHP の配列関数を学習します。配列は非常に頻繁に使用されるデータ型です。配列の処理を学習すると、Web サイトを構築する際にさらに快適になります。
1.array_multisort() を使用すると、複数の配列を一度に並べ替えたり、特定の次元に従って多次元配列を並べ替えたりできます。元のキー名の関連付けはソート中に保持され、実装される関数は SQL の ORDERBY に似ています。
<ol class="dp-xml"> <li class="alt"><span><span>$</span><span class="attribute"><font color="#ff0000">ar1</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">array</font></span><span>("10",100,100,"a"); </span></span></li> <li class=""> <span>$</span><span class="attribute"><font color="#ff0000">ar2</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">array</font></span><span>(1,3,"2",1); </span> </li> <li class="alt"><span>array_multisort($ar1,$ar2); </span></li> <li class=""> <span></span><span class="tag"><strong><font color="#006699">?></font></strong></span><span> </span> </li> <li class="alt"><span>//返回结果(保持了原来数组的关联性) </span></li> <li class=""> <span>$</span><span class="attribute"><font color="#ff0000">ar1</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">Array</font></span><span>([0]=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>10[1]=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>a[2]=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>100[3]=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>100) </span> </li> <li class="alt"> <span>$</span><span class="attribute"><font color="#ff0000">ar2</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">Array</font></span><span>([0]=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>1[1]=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>1[2]=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>2[3]=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>3) </span> </li> <li class=""><span> </span></li> <li class="alt"><span>//实现学生成绩排名 </span></li> <li class=""> <span>$</span><span class="attribute"><font color="#ff0000">grade</font></span><span>=</span><span class="attribute-value"><font color="#0000ff">array</font></span><span>("score"=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>array(70,95,70.0,60,"70"), </span> </li> <li class="alt"> <span>"name"=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>array("ZhangSan","LiSi","WangWu", </span> </li> <li class=""><span>"ZhaoLiu","LiuQi")); </span></li> <li class="alt"><span>array_multisort($grade["score"],SORT_NUMERIC,SORT_DESC, </span></li> <li class=""><span>//将分数作为数值,由高到低排序 </span></li> <li class="alt"><span>$grade["name"],SORT_STRING,SORT_ASC); </span></li> <li class=""><span>//将名字作为字符串,由小到大排序 </span></li> <li class="alt"> <span></span><span class="tag"><strong><font color="#006699">?></font></strong></span><span> </span> </li> <li class=""><span>//输出结果 </span></li> <li class="alt"><span> </span></li> <li class=""><span>array( </span></li> <li class="alt"> <span>'score'=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> </span> </li> <li class=""><span>array( </span></li> <li class="alt"> <span></span><span class="attribute"><font color="#ff0000">0</font></span><span>=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>95, </span> </li> <li class=""> <span></span><span class="attribute"><font color="#ff0000">1</font></span><span>=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>'70', </span> </li> <li class="alt"> <span></span><span class="attribute"><font color="#ff0000">2</font></span><span>=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>70, </span> </li> <li class=""> <span></span><span class="attribute"><font color="#ff0000">3</font></span><span>=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>70, </span> </li> <li class="alt"> <span></span><span class="attribute"><font color="#ff0000">4</font></span><span>=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>60, </span> </li> <li class=""><span>), </span></li> <li class="alt"> <span>'name'=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span> </span> </li> <li class=""><span>array( </span></li> <li class="alt"> <span></span><span class="attribute"><font color="#ff0000">0</font></span><span>=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>'LiSi', </span> </li> <li class=""> <span></span><span class="attribute"><font color="#ff0000">1</font></span><span>=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>'LiuQi', </span> </li> <li class="alt"> <span></span><span class="attribute"><font color="#ff0000">2</font></span><span>=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>'WangWu', </span> </li> <li class=""> <span></span><span class="attribute"><font color="#ff0000">3</font></span><span>=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>'ZhangSan', </span> </li> <li class="alt"> <span></span><span class="attribute"><font color="#ff0000">4</font></span><span>=</span><span class="tag"><strong><font color="#006699">></font></strong></span><span>'ZhaoLiu', </span> </li> <li class=""><span>), </span></li> <li class="alt"><span>) </span></li> </ol>
2.array_rand() と shuffle()、1 つは配列から 1 つ以上の値をランダムに取り出すことであり、もう 1 つは配列内の値の順序を乱すことです。配列からランダムにデータを抽出する関数は、抽選などの関数を実装するために使用できます。
3.array_reduce() は、コールバック関数関数を入力配列内の各ユニットに繰り返し適用し、それによって配列を単一の値に削減します。オプションの初期パラメータが指定されている場合、それは配列内の最初の値として扱われるか、配列が空の場合は最終的な戻り値として扱われます。
<ol class="dp-xml"><li class="alt"> <span><strong><font color="#006699"><span class="tag"><?</SPAN><SPAN class=tag-name>php</SPAN></FONT></STRONG><SPAN> </SPAN></SPAN><LI class=""><SPAN>functionrsum($v,$w){ </SPAN><LI class=alt><SPAN>$v+=$w; </SPAN><LI class=""><SPAN>return$v; </SPAN><LI class=alt><SPAN>} </SPAN><LI class=""><SPAN> </SPAN><LI class=alt><SPAN>functionrmul($v,$w){ </SPAN><LI class=""><SPAN>$v*=$w; </SPAN><LI class=alt><SPAN>return$v; </SPAN><LI class=""><SPAN>} </SPAN><LI class=alt><SPAN> </SPAN><LI class=""><SPAN>$</SPAN><SPAN class=attribute><FONT color=#ff0000>a</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>array</FONT></SPAN><SPAN>(1,2,3,4,5); </SPAN></SPAN><LI class=alt><SPAN>$</SPAN><SPAN class=attribute><FONT color=#ff0000>x</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>array</FONT></SPAN><SPAN>(); </SPAN></SPAN><LI class=""><SPAN>//实现array_sum()功能 </SPAN><LI class=alt><SPAN>$</SPAN><SPAN class=attribute><FONT color=#ff0000>b</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>array_reduce</FONT></SPAN><SPAN>($a,"rsum");//</SPAN><SPAN class=attribute-value><FONT color=#0000ff>1</FONT></SPAN><SPAN class=attribute><FONT color=#ff0000>15</FONT></SPAN><SPAN>=1+2+3+4+5 </SPAN></SPAN><LI class=""><SPAN> </SPAN><LI class=alt><SPAN>$</SPAN><SPAN class=attribute><FONT color=#ff0000>c</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>array_reduce</FONT></SPAN><SPAN>($a,"rmul",10);//</SPAN><SPAN class=attribute-value><FONT color=#0000ff>1</FONT></SPAN><SPAN class=attribute><FONT color=#ff0000>1200</FONT></SPAN><SPAN>=1*2*3*4*5*10 </SPAN></SPAN><LI class=""><SPAN>$</SPAN><SPAN class=attribute><FONT color=#ff0000>d</FONT></SPAN><SPAN>=</SPAN><SPAN class=attribute-value><FONT color=#0000ff>array_reduce</FONT></SPAN><SPAN>($x,"rsum",1);//1 </SPAN></SPAN><LI class=alt><SPAN></SPAN><SPAN class=tag><STRONG><FONT color=#006699>?></span></font></strong></span><span> </span> </li></ol>
この関数は配列(積、差などの関数)の和を実現することができます