PHPで配列を削除して添字をリセットする方法

PHPz
リリース: 2023-04-20 15:09:37
オリジナル
690 人が閲覧しました

PHP では、配列に対して何らかの処理を実行する必要があることがよくあります。処理中の一般的なタスクの 1 つは、「配列の削除と添字のリセット」です。この記事では、PHP を使用してこのタスクを実現する方法について詳しく説明します。

  1. 配列の削除

まず、配列から要素を削除する方法を見てみましょう。 PHP では、以下に示すように、unset() 関数を使用して配列内の値を削除できます。

$arr = array(1, 2, 3, 4, 5);
unset($arr[2]);
ログイン後にコピー

上の例では、配列内の 3 番目の要素を削除しました。このコマンドを実行すると、配列は次のようになります。

[0 => 1, 1 => 2, 3 => 4, 4 => 5]
ログイン後にコピー

ご覧のとおり、要素 3 は削除されていますが、配列のインデックスはリセットされていません。

  1. インデックスのリセット

次に、インデックスをリセットする方法を見てみましょう。 PHP では、これを実現する 2 つの方法があります。

方法 1: array_values()

array_values() 関数を使用すると、新しい配列が返され、この新しい配列のインデックスは次のようになります。 0からスタート。以下はサンプル コードです:

$arr = array(1, 2, 3, 4, 5);
unset($arr[2]);
$arr = array_values($arr);
ログイン後にコピー

上記のコードを実行すると、$arr の値は次のようになります:

[0 => 1, 1 => 2, 2 => 4, 3 => 5]
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

方法 2: ループ トラバーサル

別のメソッドを使用します。配列をループし、unset() 関数を実行します。このアプローチでは新しい配列が作成されないため、より効率的に実行されます。以下はサンプル コードです:

$arr = array(1, 2, 3, 4, 5);
unset($arr[2]);
foreach ($arr as $key => $value) {
    $arr[$key] = $value;
}
ログイン後にコピー

上記のコードを実行すると、$arr の値は次のようになります:

[0 => 1, 1 => 2, 2 => 4, 3 => 5]
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

ここでの foreach ループは配列を走査し、$key を使用して配列をリセットします。変数 各要素のインデックス。

  1. 完全な実装

次に、これら 2 つの手順を組み合わせて、配列の要素を効率的に削除し、インデックスをリセットできる完全な PHP プログラムを作成します。完全なサンプル コードは次のとおりです。

function delete_and_reset(&$arr, $delete_key) {
    unset($arr[$delete_key]);
    foreach ($arr as $key => $value) {
        $arr[$key] = $value;
    }
    return $arr;
}

$arr = array(1, 2, 3, 4, 5);
$arr = delete_and_reset($arr, 2);
ログイン後にコピー

上記のコードでは、delete_and_reset() という名前の関数を定義します。操作対象の配列と削除対象のキーの 2 つのパラメータを受け入れます。

関数では、まず unset() 関数を使用して指定されたキーを持つ要素を削除し、次に foreach() を使用して配列をループし、$key 変数を使用して各要素のインデックスをリセットします。 。

最後に、メイン プログラムで配列を定義し、delete_and_reset() 関数を呼び出して処理します。上記のコードを実行すると、$arr の値は次のようになります。

[0 => 1, 1 => 2, 2 => 4, 3 => 5]
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
  1. 結論

これで、PHP を使用して配列を削除し、添字をリセットする方法がわかりました。これは、PHP 開発作業で頻繁に使用される非常に便利なタスクです。初心者でもプロの開発者でも、このスキルを習得することは必須です。

以上がPHPで配列を削除して添字をリセットする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!