次のような PHP 配列があります:
$messages = [312, 401, 1599, 3, ...];
配列内の値が一意である場合、特定の値を持つ要素を(キーを知らなくても)削除するにはどうすればよいでしょうか?
ベストアンサー1
使用array_search()
そしてunset
、次のことを試してください。
if (($key = array_search($del_val, $messages)) !== false) {
unset($messages[$key]);
}
array_search()
見つかった要素のキーを返します。これを使用して、 を元の配列から削除できますunset()
。失敗した場合は が返されますFALSE
が、成功した場合は false-y 値を返す可能性があります (キーが など0
)。これが厳密な比較!==
演算子が使用される理由です。
ステートメントは値が返されたif()
かどうかを確認しarray_search()
、返された場合にのみアクションを実行します。