jQuery および Laravel Collections が提供する配列のようなコレクション オブジェクトを使用することにより、PHP 配列を簡単かつエレガントに処理できます。
作曲家要求エイメオス/マップ
サポートされている PHP バージョン:
PHP 7.1+
PHP 8+
目次
PHP マップを使用する理由
メソッドのリスト
作成する
アクセス
追加
集計
デバッグ
注文
短くする
テスト
変異する
その他
ドキュメント
カスタムメソッド
パフォーマンス
アップグレードガイド
の代わりに:
$list = [['id' => 'one', 'value' => 'value1'], ['id' => 'two', 'value' => 'value2'], null];$list[ ] = ['id' => 'three'、'value' => 'value3']; // elementunset( $list[0] ) を追加します。 // 要素を削除 $list = array_filter( $list ); // 空の値を削除sort( $list ); // 要素を並べ替える $pairs = array_column( $list, 'value', 'id' ); // 作成 ['three' => 'value3']$value = restart( $pairs ) ?: null; // 最初の値を返す
以下のみを使用します:
$list = [['id' => 'one', 'value' => 'value1'], ['id' => 'two', 'value' => 'value2'], null];$value = map( $list ) // 作成 Map->push( ['id' => 'three', 'value' => 'value3'] ) // 要素を追加->remove( 0 ) // 削除element->filter() // 空の値を削除します->sort() // 要素を並べ替えます->col( 'value', 'id' ) // ['three' => 'value3']->first() を作成します; // 最初の値を返す
以下は引き続き使用できます。
$map[] = ['id' => 'three', 'value' => 'value3'];$value = $map[0];count( $map );foreach( $map as $key => value );
コールバックを使用します。
また、マップ オブジェクトを使用すると、匿名関数を多くのメソッドに渡すことができます。例:
$map->each( function( $val, $key ) { echo $key . ': ' . $val; } );
jQuery スタイル:
マップ要素がオブジェクトの場合、jQuery と同様に、オブジェクトごとにメソッドを呼び出し、結果を新しいマップとして取得できます。
// MyClass は setStatus() ($this を返す) と getCode() (コンストラクターによって初期化される) を実装します $map = Map::from( ['a' => new MyClass( 'x' ), 'b' => new MyClass ( 'y' )] );$map->setStatus( 1 )->getCode()->toArray();
これにより、両方のオブジェクトに対してsetStatus( 1 )
が呼び出されます。 setStatus()
実装が$this
を返す場合、新しいマップには以下も含まれます。
['a' => MyClass()、'b' => MyClass()]
これらの新しいマップ要素ではgetCode()
が呼び出され、最初のオブジェクトにはx
が返され、2 番目のオブジェクトにはy
返されます。 getCode()
の結果から作成されたマップは次を返します。
['a' => 'x'、'b' => 'y']
関数マップ 関数 is_map __call __callStatic __construct 結局 arsort arsorted asorted asorted at avg before bool call Cast chunk Clear clone Collapse 結合比較 concat contains copy count countBy dd delimiter diff diffAssoc diffKeys dump 重複するそれぞれの空の等しいもの、explode フィルタを除くすべての first firstKey を検索 firstKey flat フリップfromJson からの float getgetIterator grep groupBy には ifAny ifEmpty が実装されていますインデックスを含む insertAfter insertAt insertBefore inString int intersect intersectAssoc intersectKeys is Empty isNumeric isObject isScalar isString join jsonSerialize キー krsort krsorted ksort last lastKey ltrim マップ max merge メソッド min none nth offsetExists offsetGet offsetSet offsetUnset Only order Pad Partition Percentage Pipe pluck Pop pos prefix prepend pull Push putランダム リデュース リジェクト リキー 削除 置換 リバース リバースrsort rsorted rtrim 検索 sep セット シフト シャッフル シャッフル スキップ スライス 何らかの並べ替え ソート スプライス 分割 strAfter strContainsAll strEnds strEndsAll string strLower strReplace strStarts strStartsAll strUpper サフィックス合計タップ時間 toArray toJson toReversed toSorted toUrl 変換転置トラバース ツリー トリム uasort uasorted uksort uksorted Union unique unshift usort usorted value walk where with zip
function map() : 渡された要素から新しいマップを作成します
__construct() : 新しいマップを作成します
clone() : マップとその中のすべてのオブジェクトのクローンを作成します
copy() : 新しいコピーを作成します
explode() : 文字列を要素のマップに分割します
from() : 渡された要素から新しいマップを作成します
fromJson() : JSON 文字列から新しいマップを作成します
time() : クロージャを何度も呼び出して新しいマップを作成します
Tree() : リスト項目からツリー構造を作成します。
__call() : カスタムメソッドを呼び出します。
__callStatic() : カスタムメソッドを静的に呼び出します。
all() : プレーンな配列を返します
at() : 指定された位置の値を返します
bool() : キーによって要素を返し、それをブール値にキャストします
call() : すべてのアイテムに対して指定されたメソッドを呼び出します。
find() : 最初/最後に一致した要素を返します。
first() : 最初の要素を返します
firstKey() : 最初のキーを返します。
get() : キーによって要素を返します
Index() : 指定されたキーの数値インデックスを返します。
int() : キーによって要素を返し、それを整数にキャストします
float() : キーによって要素を返し、それを float にキャストします。
key() : すべてのキーを返します
last() : 最後の要素を返します。
lastKey() : 最後のキーを返します。
Pop() : 最後の要素を返して削除します
pos() : 値の数値インデックスを返します。
pull() : キーによって要素を返し、削除します
random() : キーを保持したランダムな要素を返します。
search() : 要素のキーを検索します。
SHIFT() : 最初の要素を返して削除します
string() : キーによって要素を返し、それを文字列にキャストします
toArray() : プレーンな配列を返します
unique() : キーを保持したすべての一意の要素を返します。
value() : 新しいキーを持つすべての要素を返します
concat() : 新しいキーを持つすべての要素を追加します
insertAfter() : 指定された要素の後に値を挿入します
insertAt() : マップ内の指定された位置に要素を挿入します
insertBefore() : 指定された要素の前に値を挿入します
merge() : 既存の要素を上書きして要素を結合します
Pad() : 指定された長さまで指定された値を埋め込みます。
prepend() : 先頭に要素を追加します (エイリアス)
Push() : 要素を末尾に追加します
put() : 指定されたキーと値をマップに設定します (エイリアス)
set() : 要素を上書きまたは追加します
Union() : 既存の要素を上書きせずに要素を追加します。
unshift() : 先頭に要素を追加します
with() : コピーを返し、要素を設定します
avg() : すべての値の平均を返します。
count() : 要素の総数を返します。
countBy() : マップ内に同じ値が存在する頻度をカウントします。
max() : すべての要素の最大値を返します。
min() : すべての要素の最小値を返します。
percentage() : テストに合格したすべての要素の割合を返します。
sum() : マップ内のすべての値の合計を返します。
dd() : マップの内容を出力し、スクリプトを終了します。
dump() : マップの内容を出力します
Tap() : マップのクローンを指定されたコールバックに渡します
arsort() : キーを保持した逆ソート要素
arsorted() : マップのコピー内のキーを保持しながら要素を逆ソートします
asort() : キーを維持して要素をソートします
asorted() : マップのコピー内のキーを保持しながら要素を並べ替えます
krsort() : キーによる要素の逆ソート
krsorted() : マップのコピー内のキーによって要素を逆ソートします
ksort() : 要素をキーで並べ替えます
order() : 渡されたキーによって要素を並べ替えます
reverse() : キーを維持したまま配列の順序を逆にします
reversed() : マップのコピー内の要素の順序を逆にします
toReversed() : マップのコピー内の要素の順序を逆にします (エイリアス)
rsort() : 新しいキーを使用して要素を逆ソートします
rsorted() : マップのコピー内の新しいキーを使用して要素を逆ソートします
shuffle() : 要素の順序をランダム化します。
shuffled() : マップのコピー内の要素の順序をランダム化します。
sort() : 新しいキーを割り当てて要素をその場で並べ替えます
sorted() : 新しいキーを使用してマップのコピー内の要素を並べ替えます。
toSorted() : 新しいキー (エイリアス) を使用して、マップのコピー内の要素を並べ替えます。
uasort() : コールバックを使用してキーを保持しながら要素を並べ替えます
uasorted() : マップのコピーでコールバックを使用してキーを保持しながら要素を並べ替えます
uksort() : コールバックを使用して要素をキーで並べ替えます
uksorted() : マップのコピーでコールバックを使用して要素をキーで並べ替えます
usort() : 新しいキーを割り当てるコールバックを使用して要素を並べ替えます
usorted() : マップのコピーに新しいキーを割り当てるコールバックを使用して要素を並べ替えます。
after() : 指定された要素の後の要素を返します
before() : 指定された要素の前の要素を返します。
clear() : すべての要素を削除します
diff() : 指定されたリストにない要素を返します。
diffAssoc() : 指定されたリストにない要素を返し、キーをチェックします
diffKeys() : 指定されたリストにない要素をキーごとに返します。
例外() : 渡された要素キーを含まない新しいマップを返します。
filter() : すべての要素にフィルターを適用します
grep() : すべての要素に正規表現を適用します。
intersect() : 共有された要素を返します
intersectAssoc() : 共有された要素を返し、キーをチェックします
intersectKeys() : キーによって共有される要素を返します。
nth() : マップから n 番目ごとの要素を返します
only() : キーで指定された要素のみを返します。
Pop() : 最後の要素を返して削除します
pull() : キーによって要素を返し、削除します
拒否() : 一致した要素をすべて削除します
Remove() : キーによって要素を削除します
SHIFT() : 最初の要素を返して削除します
Skip() : 指定された数の項目をスキップし、残りを返します。
lice() : マップのスライスを返します。
take() : 指定された数の項目を含む新しいマップを返します
where() : 指定された条件で要素のリストをフィルターします。
function is_map() : 変数がマップ オブジェクトかどうかをテストします。
Compare() : すべてのマップ要素と値を比較します。
contains() : アイテムがマップ内に存在するかどうかをテストします
each() : 各要素にコールバックを適用します。
empty() : マップが空かどうかをテストします
quals() : マップの内容が等しいかどうかをテストします。
Every() : すべての要素が指定されたコールバックのテストに合格することを検証します
has() : キーが存在するかどうかをテストします
if() : 条件に応じてコールバックを実行します。
ifAny() : マップに要素が含まれている場合にコールバックを実行します。
ifEmpty() : マップが空の場合にコールバックを実行します。
in() : 要素が含まれているかどうかをテストします
include() : 要素が含まれているかどうかをテストします
inString() : 項目がマップ内の文字列の一部であるかどうかをテストします。
is() : マップが同じキーと値で構成されているかどうかをテストします
isEmpty() : マップが空かどうかをテストします
isNumeric() : すべてのエントリが数値であるかどうかをテストします
isObject() : すべてのエントリがオブジェクトかどうかをテストします
isScalar() : すべてのエントリがスカラー値であるかどうかをテストします。
isString() : すべてのエントリが文字列値であるかどうかをテストします。
implements() : すべてのエントリがインターフェイスを実装するオブジェクトであるかどうかをテストします。
none() : どの要素もマップの一部ではないかどうかをテストします。
some() : 少なくとも 1 つの要素が含まれているかどうかをテストします
strContains() : 渡された文字列の少なくとも 1 つが少なくとも 1 つのエントリの一部であるかどうかをテストします。
strContainsAll() : すべてのエントリに渡された文字列のいずれかが含まれているかどうかをテストします。
strEnds() : 少なくとも 1 つのエントリが渡された文字列の 1 つで終わるかどうかをテストします。
strEndsAll() : すべてのエントリが渡された文字列の少なくとも 1 つで終わるかどうかをテストします。
strStarts() : エントリの少なくとも 1 つが、渡された文字列の少なくとも 1 つで始まるかどうかをテストします。
strStartsAll() : すべてのエントリが渡された文字列の 1 つで始まるかどうかをテストします。
Cast() : すべてのエントリを渡された型にキャストします
chunk() : マップをチャンクに分割します
Col() : キーと値のマッピングを作成します。
Collapse() : 多次元要素を折りたたんで要素を上書きします
combine() : マップ要素をキーとして指定された値と結合します。
flat() : 要素を上書きせずに多次元要素を平坦化します
flick() : キーとその値を交換します。
groupBy() : 連想配列の要素またはオブジェクトをグループ化します。
join() : 連結された要素を区切り文字付きの文字列として返します
ltrim() : 渡された文字をすべての文字列の左側から削除します
map() : 各要素にコールバックを適用し、結果を返します。
Partition() : リストを指定された数のグループに分割します
Pipe() : マップ全体にコールバックを適用します。
pluck() : キーと値のマッピング (エイリアス) を作成します。
prefix() : 各マップエントリにプレフィックスを追加します
reduce() : マップのコンテンツから単一の値を計算します。
rekey() : 渡された関数に従ってキーを変更します
replace() : 要素を再帰的に置換します
rtrim() : 渡された文字をすべての文字列の右側から削除します
splice() : スライスを新しい要素に置き換えます
strAfter() : 渡された値の後の文字列を返します。
strLower() : すべての英字を小文字に変換します。
strReplace() : 出現する検索文字列をすべて置換文字列に置き換えます。
strUpper() : すべてのアルファベットを大文字に変換します
suffix() : 各マップエントリにサフィックスを追加します
toJson() : JSON 形式で要素を返します。
toUrl() : HTTP クエリ文字列を作成します。
transfrom() : 新しいキーと値のペアを作成するコールバックを各要素に適用します。
transpose() : 2 次元マップの行と列を交換します。
traverse() : ネストされた項目のツリーを走査し、各項目をコールバックに渡します
トリム() : 渡された文字をすべての文字列の左/右から削除します。
walk() : 指定されたコールバックをすべての要素に適用します
zip() : 対応するインデックスにあるすべての配列の値をマージします。
delimiter() : 多次元配列へのパスの区切り文字を設定または返します
getIterator() : 要素のイテレータを返します。
jsonSerialize() : JSON にシリアル化するデータを指定します
method() : カスタムメソッドを登録します
offsetExists() : キーが存在するかどうかを確認します
offsetGet() : キーによって要素を返します
offsetSet() : 要素を上書きします
offsetUnset() : キーによって要素を削除します
sep() : 現在のマップ内の多次元配列へのパスの区切り文字を設定します。
変数がマップ オブジェクトかどうかをテストします
関数 is_map( $var ) : bool
@parammixed $var
テストする変数
例:
is_map( new Map() );// trueis_map( [] );// false
渡された要素の新しいマップを返します。
関数マップ( $elements = [] ) : AimeosMap
@parammixed $elements
要素または単一の値のリスト
@return AimeosMapマップ インスタンス
例:
// arraymap( [] );// nullmap( null );// scalarmap( 'a' );// objectmap( new stdClass() );// マップ objectmap( new Map() );// iterable objectmap( new ArrayObject() );// クロージャは lazilymap( function() {return []; を評価しました。 } );
以下も参照してください。
rekey() - 渡された関数に従ってキーを変更します
transform() - 渡された関数を使用して新しいキーと値のペアを作成し、結果の新しいマップを返します。
新しいマップ オブジェクトを作成します。
パブリック関数 __construct( $elements = [] )
@parammixed $elements
単一要素、要素のリスト、Map オブジェクト、反復可能なオブジェクトまたはイテレータ、その他すべて
例:
// arraynew Map( [] );// nullnew Map( null );// scalarnew Map( 'a' );// objectnew Map( new stdClass() );// マップ objectnew Map( new Map() ); // 反復可能なオブジェクトnew Map( new ArrayObject() );// クロージャは遅延して評価されましたnew Map( function() {return []; } );
クラスのカスタム メソッドへの動的呼び出しを処理します。
パブリック関数 __call( string $name, array $params )
@param string $name
メソッド名
@param array<mixed> $params
パラメータのリスト
@return混合呼び出された関数からの結果、または要素メソッドからの結果を含む新しいマップ
Map::method() によって追加されたカスタム メソッドを呼び出します。呼び出されたメソッドは$this->items
使用して内部配列にアクセスできます。
例:
Map::method( 'case', function( $case = CASE_LOWER ) {return new self( array_change_key_case( $this->items, $case ) ); } ); Map::from( ['a' => 'bar'] )->case( CASE_UPPER );// ['A' => 'bar']
これにより、項目がオブジェクトの場合にオブジェクト メソッドを呼び出すこともできます。
$item = 新しい MyClass(); // メソッド setStatus() ($this を返す) と getCode() を使用して、implementedMap::from( [$item, $item] )->setStatus( 1 )->getCode()->toArray();
これにより、マップ内の各要素のsetStatus()
メソッドが呼び出され、その戻り値を使用して新しいマップが作成されます。新しいマップでは、すべての要素に対してgetCode()
メソッドが呼び出され、その戻り値も新しいマップに格納されます。この最後のマップが返され、元のマップのマップ キーが返されたマップに保存されます。
要素がオブジェクトでない場合はスキップされ、これがすべての要素に適用される場合は空のマップが返されます。マップに混合タイプのオブジェクトが含まれており、そのうちの 1 つが呼び出されたメソッドを実装していない場合、エラーがスローされます。
クラスのカスタム メソッドへの静的呼び出しを処理します。
パブリック静的関数 __callStatic( string $name, array $params )
@param string $name
メソッド名
@param array<mixed> $params
パラメータのリスト
@return混合呼び出された関数からの結果、または要素メソッドからの結果を含む新しいマップ
@throws BadMethodCallExceptionその名前にメソッドが登録されていない場合
Map::method() によって追加されたカスタム メソッドを静的に呼び出します。使用可能なオブジェクトがないため、呼び出されたメソッドは内部配列にアクセスできません。
例:
Map::method( 'foo', function( $arg1, $arg2 ) {} ); Map::foo( $arg1, $arg2 );
指定された要素の後の要素を返します。
パブリック関数 after( $value ) : self
@param Closure|int|string $value
(item, key) パラメータを持つ値または関数
@return self<int|string,mixed>指定されたマップの後の要素を含む新しいマップ
キーはこの方法を使用して保存されます。
例:
Map::from( [0 => 'b', 1 => 'a'] )->after( 'b' );// [1 => 'a']Map::from( ['a' = > 1, 'b' => 0] )->after( 1 );// ['b' => 0]Map::from( [0 => 'b', 1 => 'a'] )->after( 'c' );// []Map::from( ['a', 'c', 'b'] )->after( function( $item, $key ) {return $item > = 'c'; } );// [2 => 'b']
要素をプレーンな配列として返します。
パブリック関数 all() : 配列
@return arrayプレーン配列
例:
Map::from( ['a'] )->all();// ['a']
すべての要素を逆順に並べ替え、キーの関連付けを維持します。
パブリック関数 arsort( int $options = SORT_REGULAR ) : self
@param int $options
arsort()
の並べ替えオプション
@return self<int|string,mixed>流体インターフェイスのマップを更新しました
この方法を使用するとキーが保存され、新しいマップは作成されません。
$options
パラメーターは、値の比較方法を変更します。可能なパラメータ値は次のとおりです。
SORT_REGULAR : 要素を通常どおり比較します (型を変更しません)
SORT_NUMERIC : 要素を数値的に比較します。
SORT_STRING : 要素を文字列として比較します
SORT_LOCALE_STRING : 現在のロケールに基づいて、またはsetlocale()
によって変更された文字列として要素を比較します。
SORT_NATURAL : natsort()
のような「自然順序付け」を使用して要素を文字列として比較します。
SORT_FLAG_CASE : SORT_STRING|SORT_FLAG_CASE および SORT_NATURAL|SORT_FLAG_CASE を使用して文字列を大文字と小文字を区別せずに並べ替えます。
例:
Map::from( ['b' => 0, 'a' => 1] )->arsort();// ['a' => 1, 'b' => 0]Map::from( [ 'a', 'b'] )->arsort();// ['b', 'a']Map::from( [0 => 'C', 1 => 'b'] )->arsort();// [1 => 'b', 0 => 'C']Map::from( [0 => 'C', 1 => 'b'] )->arsort( SORT_STRING |SORT_FLAG_CASE );// [0 => 'C', 1 => 'b'] 'C' -> 'c' および 'c' > 'b' であるため
すべての要素のコピーを逆順にソートし、キーの関連付けを維持します。
パブリック関数 arsorted( int $options = SORT_REGULAR ) : self
@param int $options
arsort()
の並べ替えオプション
@return self<int|string,mixed>流体インターフェイスのマップを更新しました
このメソッドを使用してキーが保存され、新しいマップが作成されます。
$options
パラメーターは、値の比較方法を変更します。可能なパラメータ値は次のとおりです。
SORT_REGULAR : 要素を通常どおり比較します (型を変更しません)
SORT_NUMERIC : 要素を数値的に比較します。
SORT_STRING : 要素を文字列として比較します
SORT_LOCALE_STRING : 現在のロケールに基づいて、またはsetlocale()
によって変更された文字列として要素を比較します。
SORT_NATURAL : natsort()
のような「自然順序付け」を使用して要素を文字列として比較します。
SORT_FLAG_CASE : SORT_STRING|SORT_FLAG_CASE および SORT_NATURAL|SORT_FLAG_CASE を使用して文字列を大文字と小文字を区別せずに並べ替えます。
例:
Map::from( ['b' => 0, 'a' => 1] )->arsorted();// ['a' => 1, 'b' => 0]Map::from( [ 'a', 'b'] )->arsorted();// ['b', 'a']Map::from( [0 => 'C', 1 => 'b'] )->arsorted();// [1 => 'b', 0 => 'C']Map::from( [0 => 'C', 1 => 'b'] )->arsorted( SORT_STRING |SORT_FLAG_CASE );// [0 => 'C', 1 => 'b'] なぜなら、'C' -> 'c' および 'c' > 「b」
すべての要素を並べ替え、キーの関連付けを維持します。
パブリック関数 asort( int $options = SORT_REGULAR ) : self
@param int $options
asort()
の並べ替えオプション
@return self<int|string,mixed>流体インターフェイスのマップを更新しました
この方法を使用するとキーが保存され、新しいマップは作成されません。
このパラメーターは、値の比較方法を変更します。可能なパラメータ値は次のとおりです。
SORT_REGULAR : 要素を通常どおり比較します (型を変更しません)
SORT_NUMERIC : 要素を数値的に比較します。
SORT_STRING : 要素を文字列として比較します
SORT_LOCALE_STRING : 現在のロケールに基づいて、またはsetlocale()
によって変更された文字列として要素を比較します。
SORT_NATURAL : natsort()
のような「自然順序付け」を使用して要素を文字列として比較します。
SORT_FLAG_CASE : SORT_STRING|SORT_FLAG_CASE および SORT_NATURAL|SORT_FLAG_CASE を使用して文字列を大文字と小文字を区別せずに並べ替えます。
例:
Map::from( ['a' => 1, 'b' => 0] )->asort();// ['b' => 0, 'a' => 1]Map::from( [ 0 => 'b', 1 => 'a'] )->asort();// [1 => 'a', 0 => 'b']Map::from( [0 => 'C', 1 => 'b'] )->asort();// [0 => 'C', 1 => 'b'] because 'C' < 'b'Map::from( [0 => 'C', 1 => 'b'] )->arsort( SORT_STRING|SORT_FLAG_CASE );// [1 => 'b', 0 => 'C'] 'C' -> 'c' および 'c' > 'b' であるため
すべての要素のコピーをソートし、キーの関連付けを維持します。
public function asorted( int $options = SORT_REGULAR ) : self
@param int $options
asort()
の並べ替えオプション
@return self<int|string,mixed>流体インターフェイスのマップを更新しました
このメソッドを使用してキーが保存され、新しいマップが作成されます。
このパラメーターは、値の比較方法を変更します。可能なパラメータ値は次のとおりです。
SORT_REGULAR : 要素を通常どおり比較します (型を変更しません)
SORT_NUMERIC : 要素を数値的に比較します。
SORT_STRING : 要素を文字列として比較します
SORT_LOCALE_STRING : 現在のロケールに基づいて、またはsetlocale()
によって変更された文字列として要素を比較します。
SORT_NATURAL : natsort()
のような「自然順序付け」を使用して要素を文字列として比較します。
SORT_FLAG_CASE : SORT_STRING|SORT_FLAG_CASE および SORT_NATURAL|SORT_FLAG_CASE を使用して文字列を大文字と小文字を区別せずに並べ替えます。
例:
Map::from( ['a' => 1, 'b' => 0] )->asorted();// ['b' => 0, 'a' => 1]Map::from( [ 0 => 'b', 1 => 'a'] )->asorted();// [1 => 'a', 0 => 'b']Map::from( [0 => 'C', 1 => 'b'] )->asorted();// [0 => 'C', 1 => 'b'] because 'C' < 'b'Map::from( [0 => 'C', 1 => 'b'] )->asorted( SORT_STRING|SORT_FLAG_CASE );// [1 => 'b', 0 => 'C'] 'C' -> 'c' および 'c' > 'b' であるため
指定された位置の値を返します。
パブリック関数 at( int $pos )
@param int $pos
マップ内の値の位置
@ returnmixed�null指定された位置の値、または値が利用できない場合は NULL
位置は 0 から始まり、位置「0」はマップの最初の要素を返し、「1」は 2 番目の要素を返します。位置が負の場合、シーケンスはマップの末尾から開始されます。
例:
Map::from( [1, 3, 5] )->at( 0 );// 1Map::from( [1, 3, 5] )->at( 1 );// 3Map::from( [ 1, 3, 5] )->at( -1 );// 5Map::from( [1, 3, 5] )->at( 3 );// NULL
マップ内のすべての整数値と浮動小数点数の平均を返します。
パブリック関数 avg( $col = null ) : float
@param Closure|string|null $col
平均を計算する入れ子になった配列またはオブジェクト内のクロージャ、キー、または値へのパス
@return floatすべての要素の平均、またはマップ内に要素がない場合は 0
NULL 値は 0 として扱われ、数値以外の値はエラーを生成します。
これは、区切り文字 (デフォルトでは「/」) で区切られた配列のキーを渡すことで多次元配列にも機能します。たとえば、「key1/key2/key3」で「val」を['key1' => ['key2' => ['key3' => 'val']]]
から取得します。 ['key1' => ['key2' => ['key3' => 'val']]]
。同じことが、オブジェクトのパブリック プロパティ、または__isset()
および__get()
メソッドを実装するオブジェクトにも当てはまります。
例:
Map::from( [1, 3, 5] )->avg();// 3Map::from( [1, null, 5] )->avg();// 3Map::from( [1, 'sum', 5] )->avg();// 2Map::from( [['p' => 30], ['p' => 50], ['p' => 10]] )->avg( 'p' );// 30Map::from( [['i' => ['p' => 30]], ['<sp