php

php配列編!追加や結合や検索の仕方などわかりやすく解説!

php配列編!追加や結合や検索の仕方などわかりやすく解説!

phpを使う上で避けて通ることのできない配列をここでは紹介していきたいと思います!

どんなプログラミング言語でも配列は存在するので、1つ覚えればほぼ一緒で次も簡単に覚えられるので、今回できっちり基礎を学びましょう!

この記事で、phpの配列について理解をしてある程度使いこなせるようになるのが目標です!なので、1つずつわかりやすく説明していきます!

phpの配列とは

配列とは上のように区切られた箱のようなイメージをしてください。この箱の中は入れる数によって変動しますが、1つ1つの値を区切ってると思ってもらってもいいです。配列に値を入れると以下のようになります。

上に書いてある番号はインデックス番号と呼ばれるもので、配列の中の番号をさしています。0から始まり1つずつ数が増えていきます。4つの値が入っているとしたら、全部で4つ値が入っていますが、インデックス番号は3までしかありません。

なので、3個目の値を何かした時は−1することを忘れないでおいてください!そうでないと、自分が思っている値の次の値を示すことになるので!

なので、変数に値を入れるときは、1つの値しか保持できなかったんですが、配列を使うことによって変数に複数の値を持たせることができます。

配列と連想配列

ちなみに、phpで配列を書くとこんな感じになります!

// php5.4以降のバージョンではこの書き方が良いです!
$array = ;

// php 5.3以下の場合はこの書き方
$array2 = array(1, 2, 3, 4, 5);

// キーをつけての書き方
$array3 = [
    'name' => '太郎',
    'age' => 20,
    'city' => '東京'
];

 

キーというのが出てきましたが、これは『name』というと『太郎』と連想付てくれます。これが、ただ単にこんな風に入っていてはなにが何の値なのかなど区別できないため、キーというのを使ってわかりやすくしてくれています!

<?php
// キーをつけてない場合はなにが何の値を意味しているのかわかりづらい
$array3 = [
    '太郎',
     20,
    '東京'
];

// キーをつけての書き方の方が一目瞭然でわかりやすい!
$array3 = [
    'name' => '太郎',
    'age' => 20,
    'city' => '東京'
];

?>

配列の中身の取り出し方

配列に入れられても、取り出せないのでは話になりません。なので、ここでは配列の取り出し方を紹介します。まずは例から見てみましょう!

$array = ;

// foreach使ったやり方
foreach ($array as $value) {
    echo $value;
}

// for使ったやり方
for ($i = 0; $i < count($array); $i++) {
    echo $array[$i];
}

// インデックス番号指定の場合

//実行 1
echo $array[0];

//実行 4
echo $array;


// 配列ごと中身を確認したい場合
print_r($array);
/*
Array
(
    [0] => 1
     => 2
     => 3
     => 4
     => 5
)
*/

 

これが1番簡単な取り出し方で1つずつ取り出せます!

連想配列の取り出し方

$person = [
    'name'=> '太郎',
    'age' => 20,
    'city' => '大阪'
];

foreach ($person as $key => $value) {
    echo "$key : $value\n";
}
// 実行!!
//name : 太郎
//age : 20
//city : 大阪

 

上のようにforeachを使い全部1つずつ取り出す時はこのようにします。しかし、キーの部分を指定してこのようにも取り出すことができます。

$person = [
    'name'=> '太郎',
    'age' => 20,
    'city' => '大阪'
];

// 太郎
echo $person['name'];
// 20
echo $person['age'];
// 大阪
echo $person['city'];

 

連想配列も普通の配列もほとんど一緒で連想配列はただ単にキーが増えただけなので、一緒に覚えておくと使い勝手がいいと思います!

配列の追加方法

$array = ['red', 'blue'];
// 1つずつ追加できる
$array[] = 'green';

print_r($array);
/*
Array
(
    [0] => red
     => blue
 => green
)
*/
// 複数追加可能
array_push($array, 'pink', 'yellow');

print_r($array);
/*
 Array
(
    [0] => red
     => blue
     => green
     => pink
     => yellow
)
 */

 

配列[] = 追加したい値

array_push(配列, 追加したい値)

上のように2つの方法があります。このように、配列を追加していくことはよくするのでどちらか覚えておくと作業も進むと思います!

連想配列の追加方法

$prices = [
    'apple' => 120,
    'banana' => 100
];

$prices['orange'] = 200;

print_r($prices);
/*
 Array
(
    [apple] => 120
    [banana] => 100
    [orange] => 200
)
 */

$prices = $prices + ['pineapple' => 350];
//$prices += ['pineapple' => 350]; これでも同じ

print_r($prices);

/*
Array
(
    [apple] => 120
    [banana] => 100
    [orange] => 200
    [pineapple] => 350
)
 */

// 配列の結合
$prices = array_merge($prices, ['peach' => 300]);

print_r($prices);
/*
 Array
(
    [apple] => 120
    [banana] => 100
    [orange] => 200
    [pineapple] => 350
    [peach] => 300
)
 */

 

普通の配列の時とほぼ一緒なんですが、ところどころ違う時もあるので注意が必要です!

配列の結合方法

$name1 = ['Kevin', 'John'];
$name2 = ['Taro', 'Jiro'];

$name = array_merge($name1, $name2);

print_r($name);
/*
Array
(
    [0] => Kevin
     => John
     => Taro
     => Jiro
)
 */

$name3 = ['Tama', 'Pochi'];

$name = array_merge_recursive($name, $name3);

print_r($name);
/*
Array
(
    [0] => Kevin
     => John
     => Taro
     => Jiro
     => Tama
    [5] => Pochi
)

 */

 

代表的な結合方法はこのようになります!ちなみに、連想配列でも同じ結果になるので今回は省略します!

配列の検索方法

ここでは3つだけとりあえず紹介しますね!僕も実務で使っているのも入っているので記憶の片隅に置いておいていい内容です!

$array = ['php', 'ruby', 'python', 'java', 'javascript', 'ruby'];

// インデックス番号を返す 0
echo array_search('php', $array);

// なかったらfalseを返す false
echo array_search('html', $array);

// 配列に探してる値があればtrue なければfalse
echo in_array('python', $array);

//複数の値を検索可能。配列でインデックス番号を返す
print_r(array_keys($array, 'ruby'));

/*
Array
(
    [0] => 1
     => 5
)

 */

 

他にもありますが、この3つを紹介しました!使い方の詳細は下に書いておきます!

array_serch(探したい値, 配列)

in_array(探したい値, 配列)

array_keys(配列, 探したい値)

配列の削除方法

今から紹介する配列の削除の例は、1つ1つ処理してる別に処理してると思ってください!1番上の配列は全て使い回しですが、別々に実行してる程でお願いします。

// 今から使う関数の共通の配列
$array = ['php', 'ruby', 'python', 'java', 'javascript'];


// 全部すことできる!
unset($array);
// null
var_dump($array);

/*==============================================================*/

// インデックス番号指定で指定場所だけ削除可能!
unset($array[0]);

print_r($array);

/*
 Array
(
     => ruby
     => python
     => java
     => javascript
)
 */

/*==============================================================*/

// 先頭を取り出して削除する
$php = array_shift($array);

// php
echo $php;

print_r($array);
/*
Array
(
    [0] => ruby
     => python
     => java
     => javascript
)
 */

/*==============================================================*/

$javascript = array_pop($array);

// javascript
echo $javascript;

print_r($array);
/*
 Array
(
    [0] => php
     => ruby
     => python
     => java
)
 */
/*==============================================================*/

 

unset(配列か配列とインデックス番号);

array_shift(配列);

array_pop(配列);

他にもありますが、あまり1度に覚えすぎても混乱するし、今回は比較的簡単なのを紹介していってます!

自分でも試して、遊んでみてください!

まとめ

配列はすごく使いますし、重要なことなので配列の入れ方と取り出し方ぐらいは覚えておいた方がいいです!

今はこの全部を覚える必要はないですが、うっすらと記憶の片隅においておくと必要になっった時に、調べやすいと思うので流し読みでもいいので全部ざっと読んどいてくださいね!

 

【経験談】おすすめのプログラミングスクールと選び方 ある程度プログラミングを自分で学ぶことができた人は壁にぶち当たりプログラミングスクールに行こうかなと思う人も多いと思います。僕も実際...