配列があり、配列内の特定のオブジェクトのすべてのインデックスを検索したいと考えています。を使用するarray_search
と、オブジェクトが見つかる最初のインデックスのみが返されます。
echo array_search(3, array(3, 3, 4));
これは 0 を返しますが、インデックス 0 と 1 の両方がオブジェクトとして整数 3 を持っていることを知りたいです。for
ループを使わずにこれを行う方法はありますか?
配列があり、配列内の特定のオブジェクトのすべてのインデックスを検索したいと考えています。を使用するarray_search
と、オブジェクトが見つかる最初のインデックスのみが返されます。
echo array_search(3, array(3, 3, 4));
これは 0 を返しますが、インデックス 0 と 1 の両方がオブジェクトとして整数 3 を持っていることを知りたいです。for
ループを使わずにこれを行う方法はありますか?
array_keys() メソッドを試してください:
$array = array(3, 3, 4);
print_r(array_keys($array, "3"));
参考のため:
array_keys() — 配列のすべてのキーまたはキーのサブセットを返します 情報と使用例 : http://php.net/manual/en/function.array-keys.php
array_keys の代替として、array_filter() は結合性を保持します
$key = 3;
$array = array(1, 3, 3, 4, 3, 5);
$result = array_filter(
$array,
function ($item) use ($key) {
return ($item == $key);
}
);
var_dump($result);