ホームページ >バックエンド開発 >PHPチュートリアル >Androidプログラマーが学ぶPHP開発(25)~配列演算関連関数(3)逆アセンブルと整理~ PhpStorm
これら 3 つのブログ投稿では、一般的に使用されるほぼすべての配列関数を示しています。PHP 開発では、ほとんどの時間が文字列と配列の操作に費やされるため、関連する関数の方が重要です。
http://php.net/manual/zh/ref.array.php
バブルソート
array_slice() 配列からセクションを削除
array_splice() 配列のセクションを削除して他のセクションに置き換えますvalues
array_combine() は、1 つの配列の値をキーとして使用し、別の配列の値をその値として使用して、配列を作成します
配列の追加と配列のマージ
array_merge() 1 つ以上の配列をマージします
交差と差分
array_intersect () 配列の共通部分を計算します
array_diff() 配列の差を計算します
プッシュとポップ
array_push() 1 つ以上のセルを配列の末尾にプッシュします (プッシュ)
array_pop() 配列の最後の要素をプッシュしますユニットポップ (pop)
Queue
array_unshift() 配列の先頭に 1 つ以上のユニットを挿入 (enqueue)
array_shift() 配列の先頭にあるユニットを配列の外に移動
Random
array_rand()配列からランダムに1つを取り出す または複数の単位を(ランダムに)取り出す
Shuffle
shuffle() 配列をシャッフルする
Sum
array_sum() 配列内のすべての値の和(合計)を計算する
range() Create指定された範囲のセルを含む配列 Array
array_fill() は指定された値
<?php /** * 冒泡排序 * * array_slice() 从数组中取出一段 * array_splice() 把数组中的一部分去掉并用其它值取代 * array_combine() 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值 * * 数组相加 与 数组合并 * array_merge() 合并一个或多个数组 * * 交集 与 差集 * array_intersect() 计算数组的交集 * array_diff() 计算数组的差集 * * 入栈 与 出栈 * array_push() 将一个或多个单元压入数组的末尾(入栈) * array_pop() 将数组最后一个单元弹出(出栈) * * 队列 * array_unshift() 在数组开头插入一个或多个单元(入队) * array_shift() 将数组开头的单元移出数组 * * 随机 * array_rand() 从数组中随机取出一个或多个单元(随机) * * 打乱 * shuffle() 将数组打乱 * * 求和 * array_sum() 计算数组中所有值的和(求和) * * range() 建立一个包含指定范围单元的数组 * array_fill() 用给定的值填充数组 */ /** * 冒泡排序 */ echo '---------- 冒泡排序 从小到大 ----------<br>'; $arr = array(9,8,7,6,5,4,3,2,1,0); $tmp; for($i=0;$i<count($arr)-1;$i++ ){ for($j=0;$j<count($arr)-1-$i;$j++){ if($arr[$j] > $arr[$j+1]){ $tmp = $arr[$j]; $arr[$j] = $arr[$j+1]; $arr[$j+1] = $tmp; } } } print_r($arr); // Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 [8] => 8 [9] => 9 ) echo '<br>'; echo '---------- 冒泡排序 从大到小 ----------<br>'; $arr = array(0,1,2,3,4,5,6,7,8,9); $tmp; for($i=0;$i<count($arr)-1;$i++ ){ for($j=0;$j<count($arr)-1-$i;$j++){ if($arr[$j+1] > $arr[$j]){ $tmp = $arr[$j]; $arr[$j] = $arr[$j+1]; $arr[$j+1] = $tmp; } } } print_r($arr); // Array ( [0] => 9 [1] => 8 [2] => 7 [3] => 6 [4] => 5 [5] => 4 [6] => 3 [7] => 2 [8] => 1 [9] => 0 ) echo '<br>'; /** * array_slice() 从数组中取出一段 */ echo '---------- array_slice() ----------<br>'; $arr2 = array("a", "b", "c", "d", "e"); $arr2n = array_slice($arr2, 2, 2); // 从下标2开始,取出2个元素 print_r($arr2n); // Array ( [0] => c [1] => d ) echo '<br>'; $arr2n2 = array_slice($arr2, -2, 2); // 从(最大下标-2)开始,取出2个元素 print_r($arr2n2); // Array ( [0] => d [1] => e ) echo '<br>'; /** * array_splice() 把数组中的一部分去掉并用其它值取代 */ echo '---------- array_splice() ----------<br>'; $arr2 = array("a", "b", "c", "d", "e"); array_splice($arr2, 2); // 从下标2开始,去掉后面所有元素 print_r($arr2); // Array ( [0] => a [1] => b ) echo '<br>'; $arr2 = array("a", "b", "c", "d", "e"); array_splice($arr2, -3, 2); // 从(最大下标-3)开始,去掉2个元素 print_r($arr2); // Array ( [0] => a [1] => b [2] => e ) echo '<br>'; $arr2 = array("a", "b", "c", "d", "e"); array_splice($arr2, -3, 2, "hello"); // 从(最大下标-3)开始,去掉2个元素。从去掉的下标开始添加新元素 print_r($arr2); // Array ( [0] => a [1] => b [2] => hello [3] => e ) echo '<br>'; $arr2 = array("a", "b", "c", "d", "e"); array_splice($arr2, -3, 2, array("hello", "world", "android")); // 从(最大下标-3)开始,去掉2个元素。从去掉的下标开始添加新元素 print_r($arr2); // Array ( [0] => a [1] => b [2] => hello [3] => world [4] => android [5] => e ) echo '<br>'; /** * array_combine() 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值 */ echo '---------- array_combine() ----------<br>'; $arrA = array("os", "webserver", "db", "language"); $arrB = array("linux", "apache", "mysql", "php"); $arrC = array_combine($arrA,$arrB); print_r($arrC); // Array ( [os] => linux [webserver] => apache [db] => mysql [language] => php ) echo '<br>'; /** * 数组相加 * 相加时,下标相同时,$arrA的元素会覆盖$arrB的元素 */ echo '---------- 数组相加 ----------<br>'; $arrA = array("os", "webserver", "db", "language"); $arrB = array("linux", "apache", "mysql", "php"); $arrC = $arrA + $arrB; print_r($arrC); // Array ( [0] => os [1] => webserver [2] => db [3] => language ) echo '<br>'; $arrA = array("os", "webserver", "db", "language"); $arrB = array(9=>"linux", "apache", "mysql", "php"); $arrC = $arrA + $arrB; print_r($arrC); // Array ( [0] => os [1] => webserver [2] => db [3] => language [9] => linux [10] => apache [11] => mysql [12] => php ) echo '<br>'; /** * 数组合并 * array_merge() 合并一个或多个数组 * 如果下标是字符串,也就是说关联数组,下标相同时,$arrB的元素会覆盖$arrA的元素 */ echo '---------- array_merge() 数组合并 ----------<br>'; $arrA = array("os", "webserver", "db", "language"); $arrB = array("linux", "apache", "mysql", "php"); $arrC = array_merge($arrA, $arrB); print_r($arrC); // Array ( [0] => os [1] => webserver [2] => db [3] => language [4] => linux [5] => apache [6] => mysql [7] => php ) echo '<br>'; $arrA = array("os", "two"=>"webserver", "db", "language"); $arrB = array("linux", "two"=>"apache", "mysql", "php"); $arrC = array_merge($arrA, $arrB); print_r($arrC); // Array ( [0] => os [two] => apache [1] => db [2] => language [3] => linux [4] => mysql [5] => php ) echo '<br>'; /** * array_intersect() 计算数组的交集 */ echo '---------- array_intersect() 交集 ----------<br>'; $arrA = array("os", "www", "db", "linux"); $arrB = array("linux", "apache", "mysql", "www"); $arrC = array_intersect($arrA, $arrB); print_r($arrC); // Array ( [1] => www [3] => linux ) echo '<br>'; /** * array_diff() 计算数组的差集 */ echo '---------- array_diff() 差集 ----------<br>'; $arrA = array("os", "www", "db", "linux"); $arrB = array("linux", "apache", "mysql", "www"); $arrC = array_diff($arrA, $arrB); print_r($arrC); // Array ( [0] => os [2] => db ) echo '<br>'; /** * array_push() 将一个或多个单元压入数组的末尾(入栈) */ echo '---------- array_push() 入栈 ----------<br>'; $arrZhan = array(); array_push($arrZhan,"one"); print_r($arrZhan); // Array ( [0] => one ) echo '<br>'; array_push($arrZhan,"two"); array_push($arrZhan,"three"); print_r($arrZhan); // Array ( [0] => one [1] => two [2] => three ) echo '<br>'; array_push($arrZhan,"four","five"); print_r($arrZhan); // Array ( [0] => one [1] => two [2] => three [3] => four [4] => five ) echo '<br>'; /** * array_pop() 将数组最后一个单元弹出(出栈) */ echo '---------- array_pop() 出栈 ----------<br>'; array_pop($arrZhan); print_r($arrZhan); // Array ( [0] => one [1] => two [2] => three [3] => four ) echo '<br>'; echo array_pop($arrZhan); // four echo '<br>'; print_r($arrZhan); // Array ( [0] => one [1] => two [2] => three ) echo '<br>'; /** * array_unshift() 在数组开头插入一个或多个单元(入队) */ echo '---------- array_unshift() 入队 ----------<br>'; $arrDuilie = array(); array_unshift($arrDuilie, "one"); array_unshift($arrDuilie, "two"); array_unshift($arrDuilie, "three"); array_unshift($arrDuilie, "four"); print_r($arrDuilie); echo '<br>'; // Array ( [0] => four [1] => three [2] => two [3] => one ) /** * array_shift() 将数组开头的单元移出数组(出队) */ echo '---------- array_shift() 出队 ----------<br>'; array_shift($arrDuilie); print_r($arrDuilie); echo '<br>'; // Array ( [0] => three [1] => two [2] => one ) echo array_shift($arrDuilie); // three echo '<br>'; print_r($arrDuilie); // Array ( [0] => two [1] => one ) echo '<br>'; /** * array_rand() 从数组中随机取出一个或多个单元(随机) */ echo '---------- array_rand() 随机 ----------<br>'; $arrZ = array("a", "b", "c", "d", "e"); var_dump(array_rand($arrZ)); // int(1) echo '<br>'; var_dump(array_rand($arrZ,3)); // array(3) { [0]=> int(0) [1]=> int(1) [2]=> int(3) } echo '<br>'; $randValue = array_rand($arrZ); $result = is_string($randValue); // 判断$randValue是不是字符串 var_dump($result); // bool(false) echo '<br>'; /** * shuffle() 将数组打乱 */ echo '---------- shuffle() 打乱 ----------<br>'; $arrZ = array("a", "b", "c", "d", "e"); shuffle($arrZ); print_r($arrZ); //Array ( [0] => c [1] => b [2] => d [3] => e [4] => a ) echo '<br>'; /** * array_sum() 计算数组中所有值的和(求和) */ echo '---------- array_sum() 求和 ----------<br>'; $arrH = array(1,2,3,4,5,6,7,8,9); echo array_sum($arrH); // 45 echo '<br>'; /** * range() 建立一个包含指定范围单元的数组 */ echo '---------- range() 求和 ----------<br>'; $arrR = range(0,10); print_r($arrR); // Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 [8] => 8 [9] => 9 [10] => 10 ) echo '<br>'; $arrR = range(0,10,3); // 第三个参数表示步进(跳步) print_r($arrR); // Array ( [0] => 0 [1] => 3 [2] => 6 [3] => 9 ) echo '<br>'; /** * array_fill() 用给定的值填充数组 */ echo '---------- array_fill() 求和 ----------<br>'; $arrF = array_fill(0,5,"iwanghang"); print_r($arrF); // Array ( [0] => iwanghang [1] => iwanghang [2] => iwanghang [3] => iwanghang [4] => iwanghang ) echo '<br>';
で配列を埋める 以上は Android プログラマが PHP 開発を学ぶ (25) - 配列操作関連関数 (3) 逆アセンブルと整理 - PhpStorm の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。