1. ホーム
  2. php

[解決済み] PHP 配列をキーではなく値で削除する

2022-03-21 02:14:49

質問

以下のようなPHPの配列があります。

$messages = [312, 401, 1599, 3, ...];

値を含む要素を削除したい $del_val (例えば $del_val=401 ) が、そのキーがわからない。これは役に立つかもしれません。 各値は一度だけ存在することができます .

この作業を行うための最もシンプルな関数を探しているのですが、お願いします。

どのように解決するのですか?

使用方法 array_search() unset は、以下を試してみてください。

if (($key = array_search($del_val, $messages)) !== false) {
    unset($messages[$key]);
}

array_search() は見つけた要素のキーを返し、それを使って元の配列からその要素を削除します。 unset() . これは FALSE を返しますが、成功した場合は false-y 値を返すことができます (キーが 0 のように)、そのため、厳密な比較のために !== 演算子が使用されます。

は、その if() 文は array_search() が値を返した場合のみ、アクションを実行します。