| PHPPHPで array_find_index() をしてみる
 
PHPでも array.findIndex() をやりたい。array_search() では検索条件が指定できないのがもどかしい。
 array_map() と array_filter() と array_reduce() はあるのに、どうしてかこれは無いようなので作ってみた。(私が知らないだけで本当は違う名前の関数があるんだろうか・・車輪の再発明でないことを祈る)
 最初に見つけた要素の添字が返る。
 見つからなかったときは -1 が返る。
 
 
 
ついでに array_find() も。最初に見つけた要素そのものが返る。
 見つからなかったときは NULL が返る。
 
 
 
条件式に合う要素が存在するかどうかだけ知りたいのであれば、もう少し処理を削れる。コールバック関数が使える in_array() のような array_contains() 関数も作ってみた。
 ただし結果は int で返る。(つまり条件に合う要素が何個含まれるのか、が分かる)
 
 
 
後記:PHP8.4で正式にarray_findが追加されましたね・・。諸事情あって古いPHPを使っている方はどうぞ。
 
 |