ホームページ >バックエンド開発 >PHPの問題 >PHPで1次元配列の値を削除する方法

PHPで1次元配列の値を削除する方法

藏色散人
藏色散人オリジナル
2021-05-13 09:36:181693ブラウズ

php で 1 次元配列の値を削除するメソッド: 1. カスタム for ループを使用して 1 次元配列の値を削除します; 2. 「array_search」と「array_splice」を使用して削除を実行します。

PHPで1次元配列の値を削除する方法

この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 パソコン

php は、one 内の value 要素を削除します-次元配列 操作方法

1. 独自の for ループを作成します

$tmp 要素の値を配列から削除します

<?php
$tmp = &#39;324&#39;;
$arr = array(
&#39;0&#39; => &#39;321&#39;,
&#39;1&#39; => &#39;322&#39;,
&#39;2&#39; => &#39;323&#39;,
&#39;3&#39; => &#39;324&#39;,
&#39;4&#39; => &#39;325&#39;,
&#39;5&#39; => &#39;326&#39;,
);

コード

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。