1

なしでPHPの配列から要素を削除しますarray_search

配列から配列要素を削除したいのですが、その要素の配列がわかりkeyません 値のみがわかっています

array_search値を使用して、最初にキーを見つけてから使用することができますunset

配列値を持つ配列要素を削除する組み込みの配列関数はありますか?

4

4 に答える 4

4

この KEY を参照することによってのみ、配列から要素を削除できます。したがって、何らかの方法でこの KEY を取得する必要があります。配列から検索した値のキーを取得する関数は、まさにarray_search()与えられた VALUE に対して KEY を返す関数です。

于 2012-05-25T08:10:04.940 に答える
2

array_search() を使用せずにこれを行う 1 つの方法を示す例

$myArray = array(5, 4, 3, 2, 1, 0, -1, -2); 
$knownValue = 3;

$myArray = array_filter(
               $myArray, 
               function($value) use ($knownValue) {
                   return $value !== $knownValue; 
               }
           ); 
于 2012-05-25T08:12:59.050 に答える
2

「配列値を持つ配列要素を削除する」必要がある関数は、削除する値を探してすべての * 要素に対してループを実行する必要があります。したがって、これを行うために独自のforループを追加するか、または代わりにarray_search()これを行うこともできます。

配列にキーがある理由は、そのキーを使用して効率的に値を取得できるようにするためです。

*実際には、削除する重複がない限り、探し続けるのではなく、見つけたらループを停止します。

于 2012-05-25T08:13:57.847 に答える
0

使用しない唯一の有効なケースarray_searchは、複数の値を設定解除したい場合です。ただし、引き続きキーを使用する必要があります。配列を繰り返し処理し、条件に一致するフィールドを削除することをお勧めします。

foreach($array as $key => $value) {
    if($value === $deleteValue)
        unset($array[$key]);
}
于 2012-05-25T08:16:02.307 に答える