私は多次元PHP配列を持ち、値に一致しない要素を(行ベースで)削除したい。例えばPHP - 値で多次元配列から削除
:
$user_types = [
0 => ['ut_id' => 32, 'type' => 'admin'],
1 => ['ut_id' => 31, 'type' => 'user'],
2 => ['ut_id' => 801, 'type' => 'editor']
];
のは私だけ'type' == 'admin'
要素をしたいとしましょう。
$user_types = [
0 => ['ut_id' => 32, 'type' => 'admin']
]
また、配列にキーが順番に入力されていることを確認する必要があります。だから私がほしいのであれば、type == 'editor'
配列キーは0(2ではない)でなければならない。
$user_types = [
0 => ['ut_id' => 801, 'type' => 'editor']
]
私はPHP array delete by value (not key)を見て持っていたが、これは多次元配列を処理しません。
私はまた、foreach
ループを使用するいくつかのソリューションを見たことがありますが、これは非常に非効率的です。
誰かが見ている方向に私を指摘できますか? 多次元配列についてはこれを扱う例は見つけられません。私はDelete element from multidimensional-array based on valueを見ましたが、これは非効率的で約6年前に書かれました。
私は多次元配列の検索に見て、そこから行くだろう。数値的に配列された配列は常に '0'で始まることに注意しましょう。キーが「2」の要素を1つ持つことはできません。 –
http://php.net/manual/en/function.array-filter.phpを 'array_values'と組み合わせて使用します。 – jeroen
@StuartWagnerはい、PHPの配列キーにそのような制限はありません。 – jeroen