ホームページ > バックエンド開発 > PHPの問題 > PHPで配列のインデックスを変更する方法

PHPで配列のインデックスを変更する方法

PHPz
リリース: 2023-04-25 10:17:34
オリジナル
1051 人が閲覧しました

PHP では、インデックスの再配置や特定の要素のインデックス値の変更など、配列のインデックスを変更する必要がよくあります。この記事では、配列インデックスを簡単に変更するのに役立つ、一般的に使用される PHP 関数とテクニックをいくつか紹介します。

1. array_values() 関数を使用してインデックスを再配置します。

配列に不連続なインデックスが含まれており、これらのインデックスを再配置したい場合は、array_values() 関数を使用できます。この関数は、要素は変更されず、インデックスが順番に並べ替えられた新しい配列を返すことができます。

たとえば、次の配列があるとします。

$fruits = array(2 => 'apple', 4 => 'banana', 6 => 'orange');
ログイン後にコピー

この配列のインデックスは連続していません。 print_r() 関数を使用して配列を出力すると、次の出力が表示されます。

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

インデックスを再配置するには、次のように配列を array_values() 関数に渡します。

$fruits = array_values($fruits);
ログイン後にコピー

現在、配列のインデックスは次のように再配置されています。

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

この関数は、元の配列を変更せずに新しい配列を返すことに注意してください。したがって、インデックスを変更するには、返された配列を元の配列に割り当てる必要があります。

2. unset() 関数を使用して要素を削除し、それらに新しいキーを再割り当てします

もう 1 つの方法は、unset() 関数を使用して元の配列内の要素を削除し、新しいもの キーの再割り当て。たとえば、次の配列があるとします。

$colors = array('red', 'green', 'blue');
ログイン後にコピー

ここで、「green」要素を削除し、その新しいキーとして「purple」を使用するとします。 unset() 関数を使用して要素を削除し、新しい配列要素を再割り当てできます。

unset($colors[1]); // 删除'green'元素
$colors['purple'] = 'blue'; // 使用'purple'作为键重新分配'blue'元素
ログイン後にコピー

現在、配列は次のようになります。

Array
(
    [0] => red
    [purple] => blue
)
ログイン後にコピー

このメソッドを使用すると、新しいキーとの競合を避けるように注意する必要があります。新しいキーが既存のキーと競合する場合、そのキーの値は上書きされます。

3. array_combine() 関数を使用して 2 つの配列を新しい配列に結合する

場合によっては、2 つの配列を新しい配列に結合し、いずれかの配列のキーを使用することが必要になる場合があります。新しい配列のキーとして。たとえば、次の 2 つの配列があるとします。

$keys = array('name', 'email', 'phone');
$values = array('John', 'john@example.com', '123-456-7890');
ログイン後にコピー

次に、$keys 配列の要素を新しい配列のキーとして使用し、$values 配列の要素をキーとして使用するとします。新しい配列の値。 array_combine() 関数を使用して、これら 2 つの配列を新しい配列に結合できます:

$contact = array_combine($keys, $values);
ログイン後にコピー

現在、$contact 配列は次のようになります:

Array
(
    [name] => John
    [email] => john@example.com
    [phone] => 123-456-7890
)
ログイン後にコピー

両方の配列が同じである必要があることに注意してください。要素の数。 2 つの配列の要素数が異なる場合、警告がトリガーされ、FALSE が返されます。

4. array_map() 関数を使用して、新しいキーを各要素にマップします

元の配列を変更せずに各要素に新しいキーを割り当てる場合は、 array_map() 関数。この関数は、指定された配列の各要素に関数を適用し、新しい配列を返します。

たとえば、次の配列があるとします。

$names = array('John', 'Jane', 'Bob');
ログイン後にコピー

次に、インデックス番号をキーとして使用して、その配列を新しい配列にマップするとします。これは、array_map() 関数と匿名関数を使用して実現できます。

$names = array_map(function ($value, $index) {
    return array(
        'id' => $index,
        'name' => $value
    );
}, $names, array_keys($names));
ログイン後にコピー

現在、$names 配列は次のようになります。

Array
(
    [0] => Array
        (
            [id] => 0
            [name] => John
        )

    [1] => Array
        (
            [id] => 1
            [name] => Jane
        )

    [2] => Array
        (
            [id] => 2
            [name] => Bob
        )
)
ログイン後にコピー

この関数は新しい配列を返すことに注意してください。元の配列は影響を受けません。

概要

PHP では、いくつかのメソッドを使用して配列のインデックスを変更できます。インデックスを再配置する場合でも、各要素に新しいキーを割り当てる場合でも、さまざまな手法と機能から選択できます。キーの競合が発生しないように注意しながら、特定のニーズに基づいて適切な方法を選択してください。

以上がPHPで配列のインデックスを変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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