配列から$tmp要素の値を削除
<?php $tmp = '324'; $arr = array('0' => '321','1' => '322','2' => '323','3' => '324','4' => '325','5' => '326', );
コード
<?php 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 )
インデックスをリセットするには文を追加
<?php 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 () も使用できます 同じ効果が得られます
<?php 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 )
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);
Result
Array( [0] => 321 [1] => 322 [2] => 323 [3] => 325 [4] => 326 )
ここで、配列要素が複雑なデータ構造であれば比較も実現できます。もちろん、データ自体は依然として 1 次元です。
上記の例では、$tmp が値である場合、$tmp に含まれるすべての要素を $array から削除することも有効です
$arr = array_merge(array_diff($arr, $tmp)); var_dump($arr);
以上がPHPで配列の要素を削除する方法の使い方まとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。