ホームページ  >  記事  >  バックエンド開発  >  PHPで配列の要素を削除する方法の使い方まとめ

PHPで配列の要素を削除する方法の使い方まとめ

伊谢尔伦
伊谢尔伦オリジナル
2017-06-24 10:04:251578ブラウズ

配列から$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;,
);

コード

<?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
)

2. PHP に付属の関数を優先的に使用します。これらの関数は C で実装されており、自分で記述するより効率的です。

  1. array_searcharray_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
)
  1. ベストプラクティス

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

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