php で 1 次元配列の値を削除するメソッド: 1. カスタム for ループを使用して 1 次元配列の値を削除します; 2. 「array_search」と「array_splice」を使用して削除を実行します。
この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 パソコン
php は、one 内の value 要素を削除します-次元配列 操作方法
1. 独自の for ループを作成します
$tmp 要素の値を配列から削除します
<?php $tmp = '324'; $arr = array( '0' => '321', '1' => '322', '2' => '323', '3' => '324', '4' => '325', '5' => '326', );
コード
foreach( $arr as $k=>$v) { if($tmp == $v) unset($arr[$k]); } print_r($arr); ?>
現時点では
Array ( [0] => 321 [1] => 322 [2] => 323 [4] => 325 [5] => 326 )
インデックスをリセットするには、文
foreach( $arr as $k=>$v) { if($tmp == $v) unset($arr[$k]); } $arr = array_values($arr); print_r($arr); ?>
#このときの結果
#
Array ( [0] => 321 [1] => 322 [2] => 323 [3] => 325 [4] => 326 )#array_merge()でも同様の効果が得られます
foreach( $arr as $k=>$v) { if($tmp == $v) unset($arr[$k]); } $arr = array_merge($arr); print_r($arr); ?>
Array ( [0] => 321 [1] => 322 [2] => 323 [3] => 325 [4] => 326 )
2. PHP の組み込み関数を使用することを優先します。 C で実装されており、自分で記述するよりも効率的です。 array_search と array_splice を使用します。array_splice はシーケンス値を自動的にリセットします。
$key=array_search($tmp ,$arr); array_splice($arr,$key,1); var_dump($arr);現時点での結果
Array
(
[0] => 321
[1] => 322
[2] => 323
[3] => 325
[4] => 326
)
$arr = array_merge(array_diff($arr, array($tmp)));
var_dump($arr);
Array
(
[0] => 321
[1] => 322
[2] => 323
[3] => 325
[4] => 326
)
ここで、配列要素が複雑なデータ構造であれば比較も可能です。もちろん、データ自体は依然として 1 次元です。
上記の例では、$tmp は値です。$tmp が配列などの複雑なデータ構造の場合、$tmp に含まれるすべての要素を $array から削除します。上記の方法も有効です。
$arr = array_merge(array_diff($arr, $tmp)); var_dump($arr);
推奨学習: 「
PHP ビデオ チュートリアル以上がPHPで1次元配列の値を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。