&$v){if($v==="string"){unset($arr[$k] ); }}」。"/> &$v){if($v==="string"){unset($arr[$k] ); }}」。">
2 つの方法: 1. 削除するには、array_search() と array_splice() を使用します。構文は、「array_splice($arr,array_search("string",$arr,true),1);」です。 2. foreach ステートメントと unset() を使用して削除します。構文 "foreach($arr as $k=>&$v){if($v==="string"){unset($arr[$k ]) ;}}」。
このチュートリアルの動作環境: Windows7 システム、PHP8.1 バージョン、DELL G3 コンピューター
方法 1 : array_search() を使用します array_splice()
ステップ 1: array_search() 関数を使用して、配列内の指定された文字列を検索し、対応するキー名を返します
array_search(value,array,strict)
パラメータ | 説明 |
---|---|
値 | 必須。配列内で検索するキー値を指定します。 |
配列 | 必須。検索する配列を指定します。 |
#strict | オプション。このパラメータが TRUE に設定されている場合、関数は配列内で同じデータ型と値の要素を検索します。可能な値:
|
ステップ 2: array_splice() 関数を使用して、取得したキー名に基づいて要素を削除します。 array_splice() 関数は、選択した要素を配列から削除します (または新しい要素に置き換えます)。
array_splice(array1,start,length,array2)
説明 | |
---|---|
必須。配列を指定します。 | |
必須。数値。削除された要素の開始位置を指定します。 0 = 最初の要素。 値が正の数に設定されている場合、削除は配列内の値で指定されたオフセットから始まります。値が負の数に設定されている場合、配列の末尾から値で指定されたオフセットから削除が開始されます。 -2 は、配列の最後から 2 番目の要素から開始することを意味します。 | |
オプション。数値。削除する要素の数を指定します。これは、返される配列の長さでもあります。 この値が正の数に設定されている場合は、この数の要素が削除されます。この値を負の数に設定すると、配列の先頭から末尾の逆数までのすべての要素が削除されます。この値が設定されていない場合は、start パラメーターで設定された位置から配列の末尾までのすべての要素が削除されます。 | |
オプション。元の配列に挿入される要素を含む配列を指定します。要素が 1 つだけの場合は、文字列に設定でき、配列に設定する必要はありません。 | #説明: この関数は元の配列を変更します |
方法 2: 使用しますforeach ステートメント unset() function
ステップ 1: foreach ステートメントを使用して、参照ループを通じて配列を走査します
foreach ($array as $key => &$value){ //循环体语句块; }指定された $ を走査します。 array array 、各ループで、現在の配列の値が $value に割り当てられ、キー名が $key に割り当てられます。
通常、foreach ステートメントを使用して配列を走査する場合、このステートメントは配列のバックアップに対して動作し、配列自体には影響しません。
ループを通じて配列を変更したい場合は、参照ループ ($value の前に & を追加すると、foreach ステートメントは値をコピーするのではなく、参照によって値を割り当てます) を使用してから操作できます。ループ本体内の配列は、配列自体に影響を与えるだけです。
#ステップ 2: ループ本体で、「===」演算子を使用して指定された文字列を検索し、unset() 関数を使用して要素を削除します
if($value==="指定字符串"){ unset($arr[$key]); }完全なサンプルコード:
<?php header("Content-type:text/html;charset=utf-8"); $arr = array(10,"25",12,25,"24"); echo "原数组:"; var_dump($arr); foreach ($arr as $key => &$value){ if($value==="25"){ unset($arr[$key]); } } echo "<br>删除指定字符串'25'后:"; var_dump($arr); ?>
#最後の要素の前に & があることがわかります。これは、最後の要素の $value 参照が原因です。配列の部分は foreach ループの後に残ります。それを破棄するには unset() を使用する必要があります。
unset($value); // 最后取消掉引用
推奨学習: 「
PHP ビデオ チュートリアル」
以上がPHP配列から特定の文字列を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。