WebDesign Dackel

PHPでよく使う配列操作の関数

PHPでよく使う配列操作の関数

Hatena0
Google+0
Pocket0
Feedly0

僕はJSとPHPを書く機会が多いのですが、言語をいったりきたりしてるとJSにある関数と、PHPにある関数がごっちゃになってしまうことがあるのですが、皆さんはどうでしょうか? 特にJSを書いている時に不満に思うのは配列の操作で、オブジェクトと配列でforとfor in を使い分けたりしなければいけませんよね。 その点PHPはforeachで一発で書けるあたり好きだったりします。 そこで今日はタイトルにある通り、PHPでよく使う配列操作用の関数をまとめてみようと思います。

配列の中に特定の値があるかチェックする in_array()

in_array(探す値, チェックする配列);

1つ目の引数には検索する値、2つ目の引数には検索する配列を指定します。

$array = array("sample1","sample2","sample3");

if( in_array("sample4",$array) ){
print "sample4がありました";
} else {
print "sample4はありません";
}

配列の中の重複した値を削除 array_unique()

array_unique(配列,比較方法);

1つ目の引数に重複した値を削除した配列を指定します。戻り値として、重複の値が無い配列が帰ってきます。 また、第2引数に値の比較方法を指定出来ます。デフォルトではSORT_REGULARが指定されています。

SORT_REGULAR – 通常の比較 (型変換をしない) を行います
SORT_NUMERIC – 数値として比較します
SORT_STRING – 文字列として比較します
SORT_LOCALE_STRING – 現在のロケールにもとづいて文字列として比較します。

$array = array(0,1,2,3,4,5,0,1);

$new_array = array_unique($array);

print_r($new_array);

// 出力結果

Array
(
[0] => 0
[1] => 1
[2] => 2
[3] => 3
[4] => 4
[5] => 5
)

配列の要素数を数える count()

count(要素数を調べる配列);

引数に要素の数を調べる配列を指定するだけでとてもシンプルです。

$array = array("あ","い","う","え","お");

print count($array);

// 出力結果
5

1つ、または2つ以上の配列をマージする array_merge()

array_merge(配列1, 配列2, ...);

引数にマージする配列を指定していきます。関数のデフォルト値が複数必要な場合に設定しておいたりすることがあるかと思います。

function exsample( $params=array() ){
    $default_params = array(
        "order" => "ID",
        "order_by" => "DESC",
        "limit" => 10
    );

    $new_params = array_merge($default_params, $params);

    print_r($new_params);
}

exsample( array("order"=>"created") );

// 出力結果
Array
(
[order] => created
[order_by] => DESC
[limit] => 10
)

配列に新しい値を追加する array_push()

引数には値を追加したい配列、追加する値を指定します。追加する値はいくつでも指定出来ます。

array_push(配列, 追加する値1, 追加する値2, ...);
$array = array("あ","い","う","え");
array_push($array,"お");
print_r($array);

// 出力結果
Array
(
[0] => あ
[1] => い
[2] => う
[3] => え
[4] => お
)

要素の順番を逆さまにする array_reverse()

引数に指定された配列の順番を逆さまにした新しい配列を取得します。

array_reverse(逆転させる配列);
$array = array(0,1,2,3,4);
$new_array = array_reverse($array);
print_r($new_array);

// 出力結果
Array
(
[0] => 4
[1] => 3
[2] => 2
[3] => 1
[4] => 0
)

配列の一番最初の値を削除する array_shift()

引数に指定した配列の一番はじめ(インデックスが0)の値を削除します。

array_shift(配列);

またこの時、数字のキーは新しく振り直されます。文字列での指定だった場合はそのままの値となります。
下の例では、埼玉はキーが1の値でしたが、ずれた分は補正されて新しく0のキーが振られています。

$array = array("東京","埼玉","千葉");
array_shift($array);

print_r($array);

// 出力結果
Array
(
[0] => 埼玉
[1] => 千葉
)

ホントはもっと沢山あったのですが、最近忙しくてブログを書くのがきつかったので一旦これ位にしてまた気が向いたら追加しようかなと思っています。