この章では配列に関しての関数について説明します。
関数とは入力したデータに基づいて決められた処理を行い、戻り値という結果を返す機能を持っています。
配列に関しての関数とは配列の順番を変えたりする関数のことです。
では関数の基本について説明します。
エクセルをご存知の方はわかると思いますが、エクセル関数にSUMと言う関数が有りますが、この関数は指定した範囲のデータに基づいて足し算を行う関数です。
例えば指定した範囲のデータが3,5,7であるならば結果は15です。
SUMには初めから指定した範囲の足し算を行うと言う仕組みが備わっています。
つまり、エクセルの内部機構でSUMの機能は指定した範囲の足し算を行うと言うプログラムがされていると言うことです。
これが関数の意味です。
引数とは関数内で使われるデータの事で、上の説明で言えば3,5,7の事です。
PHPには初めからこのように機能が定義されている関数が多数ありますので、この章では配列に関係する関数を取り上げたいと思います。
1番下に猿を追加したので、
この例では数値をソートしています。
結果は 「1259」 です。
次の例をみてみましょう。
この例では文字列をソートしています。
結果は 「bgt」 です。
次の例をみてみましょう。
つまり
この例では数値をソートしています。
結果は「9521」 です。
この例では文字列をソートしています。
結果は「tgb」 です。
比較の対象は値であり、昇順に並び変えます。
比較の対象は値であり、降順に並び変えます。
比較の対象はキーであり、昇順に並び変えます。
比較の対象はキーであり、降順に並び変えます。
基本構文の中の
TRUEを指定すると例え配列から要素を取り出してもキーと値の関係は崩れません。
[取り出す数]を指定しない場合は指定した位置から最後まで指定したことと同じことを意味します。
では例をみてみましょう。
取り出し位置は0から数えているので、1の場合は2つ目の要素である栄治からになります。
結果は以下の通りです。
0=>栄治
1=>五郎
2=>栄太
次の例をみてみましょう。
この場合は「-2」なので後ろから2つ目から最後までになります。
取り出す個数を入力してないので、指定した位置から最後までになります。
つまり、終わりから2つ目の要素である五郎と栄太までを切り取り、$name2に代入しています。
結果は以下の通りです。
0=>五郎
1=>栄太
次の例をみてみましょう。
[取り出す数]を2に指定しているので2つ取り出しています。
結果は以下の通りです。
0=>栄治
1=>五郎
次の例をみてみましょう。
結果は以下の通りです。
0=>栄治
1=>五郎
次の例をみてみましょう。
つまりこの例で説明しますと指定した開始位置は0なので太郎から始まって、栄太、こじを省いた残りすべてを$name2に代入します。
結果は以下の通りです。
0=>太郎
1=>栄治
2=>五郎
次の例をみてみましょう。
結果は以下の通りです。
1=>栄治
2=>五郎
次の例をみてみましょう。
結果は以下の通りです。
0=>太郎
1=>栄治
2=>五郎
3=>栄太
では例をみてみましょう。
ここでの注目点は配列の要素を取り除くことにより元の配列まで影響を受けるということです。
それに対して
最初のprintの出力は以下の通りです。
0=>html
1=>Java
次のprintの出力は以下の通りです。
0=>PHP
1=>c++
次の例をみてみましょう。
最初のprintの出力は以下の通りです。
0=>html
1=>Java
2=>c++
次のprintの出力は以下の通りです。
0=>PHP
次の例をみてみましょう。
最初のprintの出力は以下の通りです。
0=>html
次のprintの出力は以下の通りです。
0=>PHP
1=>Ruby
2=>Java
3=>c++
次の例をみてみましょう。
最初のprintの出力は以下の通りです。
0=>html
次のprintの出力は以下の通りです。
0=>PHP
1=>word
2=>powerpoint
3=>Java
4=>c++
では例をみてみましょう。
結果は
次の例をみてみましょう。
その場合はlist関数とeach関数の組み合わせを使います。
each を実行して配列のキーと値のペアを順番に返して
つまり、以下のようにnameを$aに、大野を$bに代入し
以下にin_array関数の使用例を示します。
以下の例では検索値PHPは配列$arに存在するのでin_array関数はTRUEを返します。