phpで削除した配列が次回表示されなくなったらどうなるのでしょうか?

PHPz
リリース: 2023-04-23 11:20:27
オリジナル
409 人が閲覧しました

PHP では、配列は非常に一般的なデータ型であり、さまざまな型のデータを格納でき、追加、削除、変更、クエリなどの基本的な操作を実行できます。配列要素を削除する必要がある場合は、unset 関数を使用してこれを実現できます。しかし、削除された要素が次回配列に再び現れることが時々あります。これはなぜでしょうか?

実際、これは PHP の配列が連想配列であるためです。つまり、各要素には対応するキー値があり、unset 関数は対応する値を削除するだけですが、キーはまだ存在します。次の走査では、キーは配列に再び表示されますが、対応する値は空になります。

では、実際にこの要素を削除するにはどうすればよいでしょうか? array_values 関数を使用して、キーが 0 から始まり連続的に増加するように配列キーの順序を並べ替えることができ、これにより、以前に削除された要素が再び表示されなくなります。

以下はサンプルコードです:

$arr = array('apple', 'banana', 'orange');
unset($arr[1]); // 删除元素
$newArr = array_values($arr); // 重新排列键
print_r($newArr);
ログイン後にコピー

出力結果:

Array
(
    [0] => apple
    [1] => orange
)
ログイン後にコピー

上記のように、array_values関数を使用することで、キーを並べ替えることができます。削除された要素は再び発生しません。

array_values 関数は要素を削除するという目的を達成できますが、配列キーの再配置も引き起こし、以前のコード ロジックに影響を与える可能性があるため、考慮する必要があることに注意してください。使用するときは注意してください。

さらに、PHP 7 以降のバージョンでは、新しい関数 array_filter を使用して配列要素を削除できます。この関数は、削除された要素が表示されない新しい配列を返します。使用例は次のとおりです。

$arr = array('apple', '', 'banana', 'orange');
$newArr = array_filter($arr); // 过滤掉为空的元素
print_r($newArr);
ログイン後にコピー

出力結果:

Array
(
    [0] => apple
    [2] => banana
    [3] => orange
)
ログイン後にコピー

array_filter 関数は、元の配列のキーの順序を変更せずに、配列内の空の要素をフィルターで除外します。これには一定の実用性があります。

つまり、PHP で配列要素を削除するには、unset 関数または array_filter 関数を使用できますが、不要なトラブルを避けるためにキーの順序に注意する必要があります。

以上がphpで削除した配列が次回表示されなくなったらどうなるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート