ホームページ >バックエンド開発 >PHPチュートリアル >配列関数の概要
配列関数のまとめ
このドキュメントは、PHP 学習マニュアルを編集したものです。使用中に、配列関数がよく使用されることに気づきました。今日は、今後参照しやすくするために整理します。
構文: array array([mixed ...]) ;
説明:
は、「=>」演算子を使用してパラメーターの配列を返します。この関数は主に使用されます。配列を表すために。
$arr=array(0=>123,2=>'tere');
array_count_values --- 配列のすべての値を計算します
構文: array array_count_values(array input);
説明:
この関数は、計算された配列の結果を返します。返される配列のインデックス値は、パラメーター入力の値です。配列の値は、パラメータ入力が出現する回数です。
例:
$array = array(1 , "hello" , 1 , "world" , "hello");
array_count_values($array); // array(1 => 2 , "hello" => 2 , "world" => 1)
?>
を返します
構文: array array_diff (array array1, array array2 [, array ...] )
説明:
Array_diff() は、他の引数に現れない array1 のすべての値を返します。この関数は配列型を返し、返される配列のインデックス値は次のようになります。保持されます。
例:
$array1 = array ("a" => "green", "red", "blue"); >
$array2 = array ("b" => "green", " yellow", "red"); $result = array_diff ($array1, $array2);?> これにより、$result に array("blue")この関数は、パラメータ入力から数値と文字列のインデックス値を返します。パラメータ search_value が指定されている場合は、指定された値のインデックス値のみが返されます。それ以外の場合は、すべてのインデックス値が返されます。入力から返されました。
例:
$array = array(0 => 100, "color" => "red");
array_keys($array); // array(0, "color")
$array = array(1, 100, 2, 100);
array_keys($array, 100); // array(0, 2)
?>
array_merge --- 2 つ以上の配列を結合します
この関数は 2 つ以上の配列をマージします。それらの値が前の値に追加されるように結合されます。入力配列に同じ文字列インデックス値がある場合、後続の値は前の値を上書きします。ただし、配列は同じ数値インデックスを持ちますが、後続の値は元の値を上書きせず、添付されます。
例:
$array1 = array("color" => "red", 2, 4);
$array2 = array("a", "b", "color" => "green", "shape" => "台形");
array_merge($array1, $array2);
?>
生成される配列は array("color" => "green", 2, 4, "a", "b", "shape" => "台形")
array_merge_recursive --- 2 つ以上の配列を再帰的に結合します
説明:
Array_merge_recursive() は、2 つ以上の配列をマージし、それらの値が前の配列に追加されます。
入力配列が同じ文字列インデックス値を持つ場合、これらの値は再帰的に配列にマージされるため、値自体が配列の場合、この関数はマージします。別の配列。いずれにせよ、配列には同じ数値インデックスがありますが、後続の値は前の値を上書きせず、それに追加されます。
例:
$ar1 = array ("color" => array ("favorite" => "red"), 5) ;
$ar2 = array (10, "color" => array ("favorite" => "green", "blue"));
$result = array_merge_recursive ($ ar1, $ar2);
?>
生成される配列は
array( "color" =>array ( "favorite" =>array ( "red" , "green" ), "blue" ),5,10)
構文: bool array_multisort (array ar1 [,mixed arg [,mixed...[,array...]]])
説明:
Array_multisort() を使用すると、複数の配列または多次元配列を一度にソートできます。
入力配列はテーブルの列とみなされ、行に従ってソートされます。これは、最初の配列がその列を含む配列です。 (値) は、次の入力配列と同じ順序で並べ替えられます。
この関数の引数構造は独特ですが、柔軟性があります。最初の引数は配列である必要があり、後続の引数は配列または次のリストのソート フラグの 1 つにすることができます。
ソート順序フラグ:
SORT_ASC - 昇順でソート
SORT_DESC - 降順でソート
ソート タイプ フラグ:
SORT_REGULAR - 項目を通常どおり比較します
SORT_NUMERIC - 項目を数値として比較します
SORT_STRING - 項目を文字列として比較します
は 2 つの同一のものを使用できません 型フラグは各配列の後に指定されます。ソートフラグは配列引数の後に指定されます。これはこの配列にのみ影響します。その他のフラグは配列引数の後にデフォルトの SORT_ASC および SORT_REGULAR にリセットされます。
成功した場合は true を返し、失敗した場合は false を返します。
例:
$ar1 = array ("10", 100, 100, "a");
$ar2 = array (1,3,"2",1);
array_multisort ($ar1,$ar2);
?>
この例をソートすると、 1 つの配列は 10、「a」、100、100 になり、2 番目の配列は 1、1、2、「3」になります。
例:
$ar = array (array ("10", 100, 100, "a"), array (1, 3, "2", 1));
array_multisort ($ar[0], SORT_ASC, SORT_STRING,
$ar[1], SORT_NUMERIC, SORT_DESC);
? >
この例でソートすると、最初の配列は 10 、 100 、 100 、 "a" (文字列として扱われ、昇順にソートされます)、2 番目の配列は 1 、 3 になります。 , "2" , 1 (数値として扱われ、降順にソートされます)。
構文: array array_pad(array input , intpad_size,mixedpad_value);
説明:
この関数は、サイズがpad_size、値がpad_valueの配列に配列を埋め込み、埋め込まれた配列を返します。パラメータpad_size 正の数の場合は、配列の右側に埋められます。負の数の場合は、配列の左側に埋められます。パラメーターpad_size の絶対値が配列入力の長さ以下の場合、パディングは行われません。
例:
$input = array(12, 10, 9);
$result = array_pad($input, 5, 0);
// 結果は array(12, 10, 9, 0, 0)
$result = array_pad($input, -7, -1);
// 結果は array(-1, -1, -1, -1, 12, 10, 9)
$result = array_pad($input, 2, "noop");
// パディングされていません
?>
構文:mixed array_pop(array array);
説明:この関数は、配列配列の最後の要素を返し、配列配列を 1 要素だけ短縮します。
例:
$stack = array("orange", "apple", "raspberry");
$fruit = array_pop($stack);
?>
これ以降、$stack の要素は「オレンジ」と「リンゴ」の 2 つだけになり、$fruit は「ラズベリー」になります。
構文: int array_push(array array,mixed var [ ,mixed . ..] );
説明:
この関数はパラメータ配列をスタックとして扱い、拡張変数はパラメータ配列の終端より上にあります。パラメータ配列の長さはそれに応じています。 to は変数の数とともに増加します。
も同じ効果があります:
$array[ ] = $var;
?>
変数ごとに繰り返します。
配列内の新しい要素数を返します。
例:
$stack = array(1, 2);
array_push($stack, " ", 3) ;
?>
この例の列では、$stack に 4 つの要素: 1、2、" "、3 が含まれます
構文:mixed array_rand (array input [, int num_req])
:
Array_rand() は、配列から 1 つ以上の値をランダムに選択する場合に非常に便利です。引数 num_reg は、選択する値の数を示します。指定されていない場合、デフォルト値は 1 です。
値を 1 つだけ選択する場合、array_rand() はランダムな値のインデックスを返します。それ以外の場合は、配列に配置されたランダム値のインデックスを返し、この配列を返します。このようにして、ランダムなインデックス値を選択するだけでなく、配列値を出力することもできます。
srand() を呼び出してランダム シードを設定することを忘れないでください。
例:
srand ((double) microtime() * 10000000);
$input = array ("Neo" 、「モーフィアス」、「トリニティ」、「サイファー」、「タンク」);
$rand_keys = array_rand ($input, 2);
print $input[$rand_keys[0] ]."n";
print $input[$rand_keys[1]]."n"; >
array_reverse --- 要素の順序を逆にした配列を返します 構文: array array_reverse(array array);「php」)。
array_shift --- 配列の最初の要素を取得します
構文:mixed array_shift(array array);
説明:
この関数は、配列の最初の要素を移動して戻し、配列を 1 要素だけ短くしてすべてを下に移動します。
$opt = array_shift ($args);
?>
この例では、$arge に要素 "-f" を持たせ、$opt に "-v" を持たせます。
array_slice --- 配列の一部を抽出
構文: array array_slice(array array, int offset , int [length] );
説明:
この関数は、配列から要素の一部を返します。オフセットが正の数の場合、取得された部分は、配列内のオフセットから始まります。配列; offset が負の数の場合、配列の末尾から開始されます。 length が指定され、それが正の数の場合、長さの要素が取得されます。 length が負の数の場合、配列の末尾の長さの要素で停止します。このパラメータを省略すると、返される部分はオフセットから取得されます。配列の最後まで。
$output = array_slice($input, 2); // "c"、"d"、および "e" を返します
$output = array_slice($input, 2, -1 ); // "c", "d"
$output = array_slice($input, -2, 1) // "d"
を返します $output = array_slice($) input, 0, 3); // "a"、"b"、および "c" を返します
?>
array_splice --- 配列の一部を削除して置換します
構文: array array_splice(array input, int offset, int [length], array [replacement] );
説明:
この関数は、配列入力をオフセットから長さまで削除します。パラメータ置換が指定されている場合は、置換の要素に置き換えられます。
置換パラメータが指定されている場合、削除された要素はこの配列の要素に置き換えられます。オフセットと長さが削除されない場合、置き換えられる要素はオフセットで指定された位置に挿入されます。
次の意味は同じです:
array_push($input, $x, $y) array_splice($input, count($input), 0, array($x, $ y) )
array_pop($input) array_splice($input, -1)
array_shift($input) array_splice($input, 0, 1)
array_unshift($input, $x, $y) array_splice($input, 0, 0, array($x, $y))
$a[$x] = $y array_splice($input, $x, 1, $y)
例:
$input = array("red", "green", "blue", " yellow");
array_splice($input, 2); // $input は array("red" , " green")
array_splice($input, 1, -1); // $input は array("red", " yellow")
array_splice($input, 1 , count ($input), "orange"); // $input は array("red", "orange")
array_splice($input, -1, 1, array("black", "maroon) "));
// $input は array("red", "green", "blue", "black", "maroon") になります
?>
構文: array array_unique (array array)
説明:
Array_unique() は入力配列 array を受け取り、同じ値のない配列を返します。インデックスは保存されます。
例:
$input = array ("a" => "green", "red", "b" => " green", "blue", "red");
$result = array_unique ($input);
?>
これにより、$result は配列 ( "a" => "green" , "red" , "blue");
構文: int array_unshift(array array,mixed var, [...] );
説明:
この関数は要素を配列 array の前に、この関数は配列 array 内の新しい要素の数を返します。
例:
$queue = array("p1", "p3");
array_unshift($queue, " p4", "p5", "p6");
?>
この例では、$queue に 5 つの要素: "p4"、"p5"、"p6" 、" が含まれるようにします。 p1」と「p3」。
構文: array array_values(配列入力);
説明:
この関数は配列からすべての値を返します。
例:
$array = array("size" => "XL", "color" => "gold");
array_values($array); // array("XL", "gold")
?>
構文: int array_walk(array arr, string func);
説明:
配列 arr の各要素を関数名 func に対応させます。要素は関数 func の最初のパラメータに渡されます。関数 func に複数のパラメータがある場合、警告メッセージが表示されます。この関数の前に「@」を追加するか、[email protected]_walk を使用するか、error_reporting を使用できます。
注: この関数は配列 arr の各要素を順番に置換するため、要素を変更すると配列自体に影響します。
注: PHP4.0 では、関数 func にインデックス (キー) とユーザー データ (userdata) を転送する機能が追加されました。 PHP4 では、array_walk() はデフォルトで配列をリセットしないため、reset( ) を呼び出す必要があります
例:
$fruits = array( "d" => "レモン" 、"a" => "バナナ" 、"c" => "リンゴ");
$item1) {
$item1 = 'インチキ';
}
function test_print($item2) {
echo "$item2< br> n";
}
array_walk($fruits , 'test_print');
reset ($fruits);
array_walk($fruits , ' test_alter');
reset ($fruits);
array_walk($fruits , 'test_print');
?>
構文: void arsort(array array);
説明:
この関数は、配列要素 (z-a) の順序を反転し、配列要素とそのインデックス値の対応関係を維持します。この関数は主に配列要素の順序を反転するために使用されます。
例:
$fruits = array("d" => "レモン" , "a" => "オレンジ" , " b" => "バナナ" , "c" => "リンゴ");
arsort($fruits);
for(reset($fruits); $key = key ($fruits) ; next($fruits)) {
echo "fruits[$key] = " .$fruits[$key].";
}
?>
この例の結果は次のようになります:
fruits[a] = orange
fruits[d] = レモン
fruits[ b ] = Banana
fruits[c] = apple
配列fruitsの順序が逆になっており、インデックス値と要素の関係は変わっていないことがわかります。 。
構文: void asort(array array );
説明:
この関数は、配列の要素を a-z に並べ替え、元のインデックス値と要素の対応関係を維持します。この関数は主に使用されます。配列の要素を再配置します。
例:
$fruits = array("d" => "レモン" , "a" => "オレンジ" , " b" => "バナナ" , "c" => "リンゴ");
asort($fruits);
for(reset($fruits); $key = key ($fruits) ; next($fruits)) {
echo "fruits[$key] = " .$fruits[$key].";
}
?>
この例の結果は次のようになります:
fruits[c] = apple
fruits[b] = バナナ
fruits[ d ] = Lemon
fruits[a] = orange
配列fruitsが再配置されており、インデックス値と要素の関係は同じままであることがわかります。
構文: array Compact(string varname | array varnames, [...] );
説明:
この関数は、変数名または配列名を含む文字列を受け取ります。変数の場合、配列には他の変数の配列名を含めることができます。
この関数は、シンボル テーブルで変数名を検索し、出力配列に追加します。これにより、変数名がインデックス値になり、変数の内容がこのインデックス値の値になります。出力配列を返す extract() の逆です。
例:
$city = "サンフランシスコ";
$state = "CA";
$event = "SIGGRAPH";
$location_vars = array("city", "state");
$result = Compact("event", $location_vars);
?>
この後、$result は array ("event" => "SIGGRAPH", "city" => "San Francisco", "state" => "CA) になります。 ")
構文: int count(mixed) var);
説明:
は、パラメーター var 内の要素の数を返します。最も一般的な例は、配列内の要素の数を計算することです。
変数が設定されていない場合は 0 を返し、変数が配列でない場合は 1 を返します。
警告:
変数が設定されていない場合、count() は 0 を返すことがありますが、変数の先頭が空の配列の場合も 0 を返します。 isset を使用できます。 () をテストします。
構文:mixed current(array array);
説明:
各配列には、現在の要素を指す内部ポインターがあり、プログラムが移動ポインターを使用して関数を実行するまで、そのポインターは配列に挿入された最初の要素を指します。この関数は内部ポインタが指す配列要素を返し、内部ポインタが配列要素の外側を指している場合はポインタの位置を移動しません。 false を返します。配列に空の要素 (0 または "") が含まれている場合は、false が返されます。
からキーと値のペアを返します。 構文: array each(array array ) ;
説明:
配列から現在のキーと値のペアを返し、配列カーソルを前方に移動します。返される配列には 4 つの要素 (0、1、キー、値) が含まれます。要素 0 と key は配列のインデックス値の名前で、1 と value は要素のデータです。配列の内部ポインタが配列の末尾を指している場合、この関数は false を返します。
例:
$foo = array("bob" , "fred" , "jussi" , "jouni");
$bar = each($foo);
?>
$bar には次のキーと値のペアが含まれます:
0 => 0
1 => 'ボブ'キー => 0値 => 'ボブ'$foo = array("ロバート" => "ボブ" , "セッポ" => "セピ");$bar = each($foo);?> ;$bar には次のキーと値のペアが含まれています:0 => 'Robert'1 => 'Bob'キー => 'ロバート'値 => 'ボブ'それぞれは通常、リストとともに使用されます。例: $HTTP_POST_VARS
例:
echo "POST メソッドで送信された値:< ;br> ";
while(list($key , $val) = each($HTTP_POST_VARS)) {
echo "$key =>";
}
?>
each() が実行された後、配列のカーソルは配列の次の要素の左側に移動します。配列の末尾、カーソルが最後の要素に移動します。
構文: end (配列 array);
説明:
この関数は、配列の内部インデックスを最後の要素に設定します
構文: void extract(array var_array, int [extract_type] , string [prefix] );
説明:
この関数は、配列から変数を現在のシンボル テーブルに入力し、配列 var_array を受け取り、インデックス値を変数名として扱い、その値を変数値として扱います。各キーの変数を作成します。現在のシンボルの /value ペア。テーブルでは、extract_type と prefix が条件として使用されます。
extract() は既存の変数をチェックします。抽出パラメータは次のいずれかの値になります。
EXTR_OVERWRITE
衝突が発生した場合。次に、既存の変数を上書きします
EXTR_SKIP
衝突が発生した場合は、既存の変数を上書きしません
EXTR_PREFIX_SAME
衝突が発生した場合は、パラメータを追加しますprefix プレフィックスの前に新しい変数になります
EXTR_PREFIX_ALL
すべての変数のプレフィックスに prefix パラメータを追加します
パラメータ extract_type が指定されていない場合は、EXTR_OVERWRITE を使用します。
注: パラメーターの接頭辞は、extract_type が EXTR_PREFIX_SAME または EXTR_PREFIX_ALL の場合にのみ必要です。
例 :
/* $var_array が wddx_deserialize から返された配列であるとします */
$size = "large" ;
$var_array = array("color" => "blue", "size" => "medium","shape" => "sphere");
抽出($var_array, EXTR_PREFIX_SAME, "wddx");
print "$color, $size, $shape, $wddx_sizen";
?>
上記の例生成される結果:
青、大、球、中
EXTR_PREFIX_SAME を指定し、$wddx_size の結果が作成されているため、$size は上書きされません。EXTR_SKIP が使用されている場合、$wddx_size は上書きされます。 EXTR_OVERWRITE が使用される場合、$size の値は中です。EXTR_PREFIX_ALL が使用される場合、$wddx_color、$wddx_size、および $wddx_shape という名前の新しい変数が存在します。
構文: bool in_array(mixed needle, array haystack );
説明:
この関数は、配列 haystack を検索して、配列内にパラメーター neede が存在するかどうかを確認し、見つかった場合は true を返し、そうでない場合は返します。間違い。
例:
$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os))
print "Irix を理解しました";
?>
構文: 混合キー(配列配列);
説明:
関数 現在の配列ポインタが指すインデックスを返します。
構文: int krsort(array array );
説明:
インデックス値と配列の値は元の状態を維持しながら、インデックス値 (z-a) の逆順に従って配列を再配置します。関係。
例:
$fruits = array("d"=>"レモン","a"=>"オレンジ"," b"=>"バナナ","c"=>"リンゴ");
krsort($fruits);
for(reset($fruits); $key = key ($fruits); next($fruits)) {
echo "fruits[$key] = ".$fruits[$key]."n";
}
?>
この例の結果は次のようになります:
fruits[d] = レモン
fruits[c] = apple
fruits[b] = Banana
fruits[a] = orange
構文: int ksort (array array [, int sort_flags] ) );
説明:
この関数は配列を再配置します。インデックス値に応じて a ~ z を配置
例:
$fruits = array("d" => "lemon" , "a" =>> "orange" , "b" = > "バナナ" , "c" => "リンゴ");
ksort($fruits);
for(reset($fruits) ; $key = key($fruits) ) ; next($fruits )) {
echo "fruits[$key] = " .$fruits[$key]."n";
}
この例の結果は次のようになります:
fruits[a] = orange
fruits[b] = バナナ
fruits[c] = apple
fruits[d] = レモン
構文: void list(...);
説明:
は、array() と似ています。操作で変数を割り当てるために使用されるリスト。
例:
?>
next--- Forward 配列の内部インデックスを移動します
配列要素の内部インデックスが指す次の点を返します。次の要素がない場合は false が返されます。
この関数は current() に似ていますが、1 つの違いは、この関数は要素を返す前に配列の内部ポインタを移動することです。つまり、この関数は要素と次の配列の移動を返すことになります。配列の内部インデックス。配列の内部インデックスが配列の要素の外側を指している場合は、false が返されます。
警告: 配列に空の要素が含まれている場合、この関数は false を返します。配列内の空の要素を処理するには、each() 関数を使用します。
pos--- 配列内の現在の要素を返します
この関数は current() のエイリアスです。
prev--- 配列を後方に移動する内部インデックス
前の配列の内部インデックスが指す配列要素を返します。前の要素がない場合は false を返します。
警告: 配列に空の要素が含まれている場合、この関数は false を返します。配列内の空の要素を処理するには、each() 関数を使用します。
この関数は next() に似ています。prev() は、next() で前方に移動するのではなく、配列の内部インデックスを後方に移動します。
range--- 整数範囲の配列を作成します
整数の配列を下位から上位まで返します
リセット--- の内部を設定します配列の最初の要素を指します
reset() は配列の内部をリセットします最初の要素へのポインタ。
reset() は、配列の最初の要素の値を返します。
rsort--- 配列の値を z-a で並べ替えます
この関数は、配列の値を z-a で並べ替えます。
例:
$fruits =array("レモン","オレンジ","バナナ","リンゴ");
rsort($fruits);
reset($fruits);
for ($i=0; $i echo"fruits[$i] = ".$fruits[$i]." } ?> この例結果は次のようになります: fruits[0] =オレンジ fruits[1] =レモン fruits[2] =バナナ fruits[ 3 ] = リンゴ 果物は z-a の順序で並べられます--- 配列の順序を混ぜ合わせます この関数は、配列の要素を任意の順序で並べ替えます。 例: $numbers = range(1,20); srand(time());
";
構文: void sort(arrayarray [, int sort_flags] );
説明:
この関数は、配列の要素を a ~ z に配置します。
例:
$fruits =array("レモン","オレンジ","バナナ","リンゴ");
sort($fruits);
for(reset($fruits);$key = key($fruits); next($fruits)) {
echo "fruits[$key] ] = ".$fruits[$key]."n";
}
?>
この例の結果は次のようになります:
fruits[0] =リンゴ
fruits[1] =バナナ
fruits[2] =レモン
fruits[3] = オレンジ
フルーツa-z の順序で並べられます
オプションの 2 番目のパラメーター sort_flags は、次の値を使用して並べ替えを変更できます:
並べ替えタイプ フラグ:
SORT_REGULAR - 項目を比較します。通常
SORT_NUMERIC - 項目を数値として比較します
SORT_STRING - 項目を文字列として比較します
構文: void uasort(arrayarray, function cmp_function);
説明:
この関数は、配列のインデックス値と要素の元の関係を維持したまま、ユーザー定義関数に従って配列を並べ替えることができます。
使用例については usort( ) uksort( ) を参照
構文: void uksort(arrayarray, function cmp_function);
説明:
この関数は、ユーザー定義関数に従って配列の値が並べ替えられます。
例:
function mycompare($a, $b) {
if ($a == $b) return 0;
return ($a > $b) ? -1 : 1;
}
$a =array(4 => "four", 3 =>「3」、20 =>「20」、10 =>「10」);
while(list($key) , $value) = each($a)) {
echo "$key: $valuen";
}
?>
this結果の例は次のようになります:
20: Twenty 10: ten4: four 3: three
説明:
この関数は配列によって定義される関数、または配列の値を並べ替える関数。
例:
function cmp($a,$b) {
if ($a ==$b) return 0;
return ($a>$b) ? -1 : 1;
$a =array(3,2,5,6,1) ;
usort($a, cmp);
while(list($key,$value) = each($a)) {
echo "$key: $valuen";
}
?>
この例の結果は次のようになります:
0: 6 1: 5 2: 3 3 :2 4:1