\CodeLapseArr

nullセーフな配列操作クラス

ドット記法をメインに、配列操作系の便利なメソッドが揃っています。

Example:

<?php
 $ar  = array();

 Arr::set($ar, 'element.0', 'value'); // クッソ長い

 Arr::set($ar, 'element.1', 'value'); // It's fuckin cool code.
このクラスは Arrクラスとして呼び出すことが可能です。`

Summary

Methods
Properties
Constants
get()
set()
delete()
has()
isAssoc()
mapRecursive()
No public properties found
No constants found
No protected methods found
No protected properties found
N/A
No private methods found
No private properties found
N/A

Methods

get()

get(array $array, mixed|null $key, mixed|null $default) : mixed

指定された配列から要素を取得します。

キーにドット区切りの文字列を与えると、多次元配列の任意の階層を指定できます。

例えば、第一引数に$array、第二引数に"deep.deep.index"を指定した時は、 $array["deep"]["deep"]["index"]を参照します。

指定された要素を取得できない場合は$defaultに指定された値を返します。

   $value = Arr::get($array, "deep.deep.index"); // これは
   $value = $array["deep"]["deep"]["index"]; // これと同じことです。

   // しかし $array["deep"]["deep"]["index"]が存在しなければ後者はエラーを発しますが
   // Arr::get()ではnullが返され、エラーは起きません。

Parameters

array $array

操作する配列

mixed|null $key

取得するインデックス

mixed|null $default

初期値。デフォルト値はnull

Returns

mixed

set()

set(array $array, string|array $key, mixed|null $value)

指定された配列に要素を設定します。

キーにドット区切りの文字列を与えると、多次元配列の任意の階層を指定できます。 (インデックス指定方法の詳細は、getメソッドのコメントを参照)

途中の階層が存在しない場合、自動的に配列を生成して続行します。 (インデックスが存在し、要素が配列でない場合に 要素が配列に置き換えられることに注意してください)

    $user = array(
        "name" => "John",
        "detail" => array(
            "age" => 24
        )
    );

    // $user["detail"]["age"]を12に変更します。
    Arr::set($user, "detail.age", 12);

    // 新しい階層を自動で生成します。
    // すでにインデックスが存在している場合、その値が上書きされることに注意してください。
    // このサンプルでは $user["name"]を配列にしています。
    Arr::set($user, array("name.first" => "John", "name.last" => "Discors"));

Parameters

array $array
string|array $key
mixed|null $value

delete()

delete(Array $array, string $key)

配列の指定したインデックスを削除します。

キーにドット区切りの文字列を与えると、多次元配列の任意の階層を指定できます。

   $user = array(
        "name" => "John",
        "age" => 24
    );

    // $user["age"]を削除
    Arr::delete($user, "age");

Parameters

Array $array

操作対象の配列

string $key

削除するインデックス

has()

has(array $array, string $key) : boolean

配列の中に指定されたキーが存在するか調べます。

Parameters

array $array

調べる配列

string $key

調べるキー

Returns

boolean

isAssoc()

isAssoc(array $array, \CodeLapse\string? $key) : boolean

渡された配列が連想配列か調べます

Parameters

array $array

調べる配列

\CodeLapse\string? $key

(Optional) 調べる要素

Returns

boolean

mapRecursive()

mapRecursive(array $array, callable $fn)

array_map関数の入れ子対応版

Parameters

array $array

操作するの配列

callable $fn

配列を処理する関数