PHPのArray(配列・連想配列)メソッド・使い方まとめ

image (4)
書いた人 須田 博

こんにちは!侍エンジニア塾編集部です。

この記事ではPHPのArray(配列・連想配列)に関する文法・メソッド・使い方について、

・配列の基本形として添字配列・連想配列の書き方の解説
・基本的な使い方として要素の取得・追加・更新・削除・要素数の取得
・配列操作でよく使う関数
・おすすめの参考書籍

などについて解説しています。

PHPのArray(配列・連想配列)についてひととおり知りたい方は、ぜひ参考にしてください!

基本形(リテラル)

変数は 名前をつけた1つの入れ物に1つの数値や文字などを入れて使用します。

PHPでは変数を宣言すると同時に値を代入するのが基本です。

PHPのArray(配列)の場合は、この変数が複数格納できるものとなります。

基本構文

・配列は、[]で囲み、カンマ「,」区切りで記述します。
・配列には、任意のオブジェクト型を要素としてもつことが可能です。
・配列 は、 array() で作成するか、[](角括弧)で作成します。
・特定の数のカンマで区切られたキー => 値 の組を引数とします。

PHP5.4以降では配列の短縮構文が追加され、array()の代わりに[](角括弧)が使えるようになりました。この記事での配列は[](角括弧)の形式での解説となります。

配列の基本構文:

添字配列(キーが整数)

添字配列はキーが0から順に0,1,2が割り振られる配列です。

実行結果:

連想配列(キーが(整数・文字列)

連想配列はキーと値を別々に指定できる配列です。
キーとキーに紐づく値を指定します。

実行結果:

多次元配列

多次元配列は、配列の内部に配列を持つことができます。

以下の例では配列の中に連想配列と添字配列をそれぞれ設定しています。

実行結果:

基本的な使い方

ここでは配列の基本的な使い方を見ていきましょう!

要素の取得

以下の例では配列を作成して、2番目の要素を取得しています。

実行結果:

以下の例では連想配列のキーを指定して値を取得しています。

実行結果:

要素の追加

配列に要素を追加する場合は[](角括弧)を指定して「$配列名[] = ‘値’」のように記述します。

実行結果:

以下は連想配列の例です。

実行結果:

要素の更新

配列の要素を更新するには、配列のキーを指定して、「$配列名[キー] = ‘値’」のように記述します。

実行結果:

要素の削除

特定のキーと値の組を削除したい場合には、unset関数を使用します。

実行結果:

実行結果:

要素数の取得

配列の要素数を取得するにはcount関数を使用します。

実行結果:

よく使う配列の関数

ここでは、配列操作でよく使う関数を見ていきましょう!

検索1(array_search)

array_search関数は指定した値を検索し、最初のキーを返します。
値が存在しなかったらFALSEを返します。

検索2(in_array)

in_array関数は配列の中に指定した値が存在する場合はTRUE。未存在はFALSEを返します。

実行結果:

検索3(array_keys)

array_keys関数は配列のキーのすべて、あるいは一部を返します。

重複した値があった場合でもキーを配列にして返します。

実行結果:

検索4(array_key_exists)

array_key_exists関数は指定したキーまたは添字が配列にあるかどうかを調べます。

実行結果:

結合1(array_merge)

array_merge関数は配列同士を結合するときに使用します。

・キーが文字列なら値が上書きされます。
・キーが数値なら値は上書きされず、添字番号が振り直されます。
・添字配列の添字番号は「値が小さい順」ではなく「宣言された順」となります。

実行結果:

結合2(array_merge_recursive)

array_merge_recursive関数は配列同士を結合するときに使用します。

・array_merge()関数と比べてキーが文字列なら値が上書きされません。
・Arrayとして格納される点が異なります。

実行結果:

結合3(array_push)

array_push関数は一つ以上の要素を配列の最後に追加します。

実行結果:

置換(array_replace)

array_replace関数は置換対象の文字列が配列に存在した場合、置換する文字列に置き換えます。

実行結果:

取り出し(foreach)

配列の要素とキーを1つずつ取り出す場合はforeach文を使用します。

ソート(sort、ksort、krsort、asort、krsort)

sortメソッドは昇順でソートします。

実行結果:

※主に連想配列のソート関数としては下記がよく使用されます。
ksort・・・キーとデータの関係を維持しつつ、配列をキーで昇順ソートする。
krsort ・・キーとデータの関係を維持しつつ、配列をキーで降順ソートする。
asort・・・キーとデータの関係を維持しつつ、配列を値で昇順ソートする。
krsort・・・キーとデータの関係を維持しつつ、配列を値で降順ソートする。

フィルタリング(array_filter)

array_filter関数は、コールバック関数を使用して、配列の要素をフィルタリングします。

実行結果:

参考書籍

以下にPHPを学習する上で、おすすめの参考書を紹介します。

詳細!PHP 7+MySQL 入門ノート

開発ツールMAMPを使った解説からPHPの変数、制御構造からスタートし、正規表現や無名関数など高度なプログラミングについても解説しています。

PHPについて広くカバーしていますで、これからプログラミングを始める方におすすめです。

気づけばプロ並みPHP 改訂版–ゼロから作れる人になる!

初心者にも優しい入門書で、来さそからMySQLまでカバーしています。

また、つまづきやすいポイントも解消して面倒な設定も簡単にクリアすることができます。

まとめ

ここでは、Array(配列)の処理について、

・配列の基本形として添字配列・連想配列の書き方の解説
・基本的な使い方として要素の取得・追加・更新・削除・要素数の取得
・配列操作でよく使う関数
・おすすめの書籍

などについて解説しました。

配列はプログラミングの処理の中でもよく使用しますので、使い方はしっかりと覚えておきましょう!

もし配列の使いかたについて忘れてしまったら、この記事を思い出してくださいね!


33歳、未経験だった僕がフリーエンジニアになれた理由
現在フリーでWEBエンジニアをやられている濱口直行さん。33歳で、プログラミングを学び始め、約半年という短い期間で独立までされた学習ログを余すことなくインタビューさせていただきました。

プログラミングを学習中の方はもちろん、独立をお考えの方まで幅広く活用できる記事になっています。この機会に是非活用していただければと思います。


最短でプログラミングを習得したい方へ

元々ITリテラシーのある方やプログラムの学び方がわかっている方は独学で習得することも可能でしょう。

ただし、実際の学習期間中はつまづいている時間がほとんどです。

「もう挫折したくない」
「本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい。」
「自分だけのカリキュラムで効率的に勉強したい」

そんな方はお気軽に侍エンジニア塾までご相談ください。

弊社では、

  • プログラミング基礎学習
  • オリジナルアプリ開発
  • 仕事獲得

までをひと通り学習できます。

まずは無料体験レッスンで、弊社のコンサルタントと一緒にあなた専用の学習方法やカリキュラムを考えてみませんか?

挫折しない学び方や、通常1000時間以上かかる学習時間を1/3にする方法などより具体的なアドバイスもさせていただいています。

詳しくは下の画像をクリックして弊社サービス内容をご確認ください。

cta1

学習者インタビュー

23歳、早稲田中退生が3ヶ月でフリーランスエンジニアになるまで
元ベンチャー役員が起業のためにプログラミングを学んだ本当の理由
WEBデザイナーの僕がフリーランスエンジニアになれた理由
IT音痴のヨガインストラクターに超速でサイト作成したコツをきく
好きな場所で働きたい方、必見!パソコンとWifiさえあれば仕事はできる!
根っからの文系が経験0から3ヶ月でエンジニアに転身した方法

人気記事セレクション

WEBアプリ開発入門者がゼロからモノを作れるようになるまでの5ステップ
必ず見つかる!プログラミング言語は作りたいものから決めよう
プログラミング勉強ならコレ!無料学習サイトおすすめランキングTop5
プログラミング関連の案件が多いクラウドソーシングサイト5選
未経験でもフリーランスエンジニアになれる5つの理由
【入門者必見】WEBアプリ開発言語を選ぶべき3つの理由
Pythonでできることって!?大注目プログラミング言語徹底解説
【完全保存版】プログラミング初心者が最初にやるべき10のコト
ドットインストールで挫折せずに2ヶ月で未経験からエンジニアになった話

プログラミング学習者必見

専属講師に質問し放題、レッスンし放題!最短1ヶ月でフリーランスエンジニア
プログラミング学習カリキュラム無料公開中
Ruby学習カリキュラム無料公開中
Python学習カリキュラム無料公開中
 1記事最大10,000円!テック系ライターさん大大大募集!!!
LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

須田 博

SEキャリアは34年以上、開発言語は多彩だがJavaは私の基本言語であり、 メジャーになる前の1999年より実務開発。開発実績は大手企業様が多いが製品開発経験やインフラ構築経験もあり。言語は大工のカンナなど大工道具のようなものであり、使う人の技量によって速さ(生産性)と品質は変わるものというスタンスでやってきました。
趣味は「車の電飾系改造」と「バドミントン」と「アニメ」と「猫のわかちゃん」です。
ビデオ溜めしたアニメは2倍速で一気に鑑賞という特技あります。