おはようございます!

 

ゆうです。

 

 

今回はPHPの配列で特に知っていることを

初心者向けに簡単にまとめてみました。

 

参考になれば幸いです。

 

初期化

空の配列を初期化する時は

$data = array();

とします。PHPに慣れていると

当たり前に思えるかもしれませんが、C言語では

 

int data[10];


という風に最初にデータ型とサイズを

指定しなければいけませんでした。

 

 

サイズを可変にする時はポインタを使って

宣言して、後でmallocで必要な領域分だけ

確保することもできますが、

後でfreeしなければいけなかったり、

色々と扱いに苦労する点も多々ありました。

 

 

そう。面倒なんですね。

 

 

しかし、PHPではその必要もありません。

値を入れて初期化する時は

 

$data = array(2, 3, 5);

のようにします。
なお、PHP5.4からは

$data = [];
$data = [2, 3, 5];


のようなやり方での初期化もできるようになりました。

 

要素の追加

$data[3] = 7;

 

のような普通のやり方ももちろんできますが、

現時点での要素数が分からなくても



$data[] = 7;

 

みたいに簡単に要素を追加することもできます。
 

array_pushという関数を使って



array_push($data, 7);

 

みたいにも書くことができます。

 

要素の削除

こちらはarray_spliceという関数を使います。



$data = [2, 3, 5, 7];
array_splice($data, 1, 2);

 

とすると$data[1]から

2つ要素が削除されます。
上の処理を行った結果は

 

echo $data[0]; //2
echo $data[1]; //7


となります。

配列の要素を削除する関数は

他にもunsetというのがあります。

 

 

例えばdata[1]を配列data[1]を

配列dataから取り除きたい時は



$data = [2, 3, 5, 7];
unset($data[1]);

 

とします。

ただしこちらはインデックスには

作用しないので結果は

 

echo $data[0]; //2
echo $data[2]; //5
echo $data[3]; //7

です。インデックス1が抜けたところは

そのままになるので

$data[1]にアクセスすると

エラーになります。

 


インデックスをちゃんとした

並び順にする時はunsetの後に

 

array_values($data);

 

とする必要があります。

 

連想配列

PHPでは配列の要素に

整数以外を入れることもできます。

つまり、連想配列とほぼ変わらない

使い方ができます。

 


例えば、こんな感じです。

 

$data['Tokyo']     = 'Japan';
$data['Vientiane'] = 'Laos';
$data['Manila']    = 'Philippines';

 

のようなこともできます。
 

他にも配列の値を配列にして

多次元配列みたいにすることもできます。

 

配列用関数

これまででいくつか出てきていますが、

PHPには配列操作のために用意された

便利な関数がたくさんあります。

 


例えば、

 

$data = [2, 3, 5, 7];
echo count($data);  //4


というように配列の要素数を返す関数が代表例です。
また、ある要素が配列に含まれているか

調べるin_arrayという関数もあります。

 

$data = [2, 3, 5, 7];
echo in_array(3, $data);  //true
echo in_array(4, $data);  //false


他にもたくさんあるので、

どんなものがあるのか知りたい方は

PHP公式サイトのページ

を見ていただければと思います。

(いわゆるドキュメントってやつです)

 

ーーーーーーーーーーーーーーーーーーーーーーーーーー

 

プログラミングの相談にのっております。
 

-  どう勉強していいかわからない

- IT業界って実際どうなの?

- プログラミングできるようになりたい!

 

という方。気軽に連絡してください!

 

 

 

またメルマガの配信も行なっております。

 

- どうやって勉強したらいいのかわからない

- プログラミング未経験なんだけど、どうしたらいいの?

- 専門用語も何もわからない

- 上司に怒られてばかりの今の状況を打破したい

 

という方はどうぞ。

 

 

 

>>>>>>メルマガの登録はこちら<<<<<<