PHPで配列を0以外から数え始めるようにする方法

PHPz
リリース: 2023-04-18 14:31:40
オリジナル
728 人が閲覧しました

PHP 言語では、配列は一般的に使用されるデータ型です。デフォルトでは、PHP 配列の添字は 0 からカウントを開始しますが、これはほとんどの場合妥当です。ただし、場合によっては、配列の添字のカウントの開始点を 1 または他の値から開始するように変更する必要があります。

PHP では、0 以外から始まる配列を数える方法が 2 つあります。1 つは連想配列を作成し、各配列要素のキー名を手動で指定する方法で、もう 1 つは PHP の組み込み関数を使用してインデックス配列を変換します。

以下は、2 つの実装方法の詳細な説明です。

方法 1: キー名を手動で指定します。

PHP で配列を作成するとき、キー名が指定されていない場合は、指定すると、PHP キー名には、デフォルトで 0 から始まる自動増加する数値インデックス値が割り当てられます。配列の最初の要素のキー名を 1 にしたい場合、たとえば、キー名 1、2、3 を持つ 3 つの要素を含む配列の場合、次のようにキー名を手動で指定できます。

$array = array(
    1 => "first element",
    2 => "second element",
    3 => "third element"
);
ログイン後にコピー

この方法では、PHP が独自にキー名を割り当てるのではなく、配列要素 1、2、および 3 のキー名を指定するだけで済みます。このようにして、配列の添字を 1 から始めることができます。

この方法は、配列内のどの要素が事前にわかっている場合、または特定の位置に要素を挿入する必要がある場合に適しています。

方法 2: PHP 組み込み関数を使用してインデックス付き配列を変換する

配列を 0 以外からカウントするもう 1 つの方法は、PHP の組み込み関数 array_values() を使用することです。この関数は、配列内のすべての値の新しい配列を返します。インデックスは 0 から始まります。したがって、この関数を使用してインデックス配列を変換し、添え字の番号を付け直すことができます。

たとえば、次のような 3 つの要素を含む配列があります:

$array = array(
    "first element",
    "second element",
    "third element"
);
ログイン後にコピー

さて、配列の最初の要素のキー名を 1 にしたいので、それを下げる必要があります。マークの番号を付け直します。次のコードを使用できます。

$new_array = array_values($array);
$new_array = array_merge(array(1 => NULL), $new_array);
ログイン後にコピー

この例では、古い配列を array_values() 関数に渡します。この関数は、添字が 0 から正確に数えられる新しいインデックス付き配列を返します。次に、array_merge() 関数を使用して新しい配列と古い配列をマージし、最初の項目のキー名を 1 に指定しました。このとき、新しい配列の添字は 1 から始まります。

配列内の最初の項目のキー名は引き続き 0 から始まりますが、新しい配列を通じてアクセスできるようになり、新しい配列の添字は 1 からカウントし始めることに注意してください。

概要:

どのような状況で配列を 0 以外からカウントし始めたいとしても、PHP は解決策を提供します。連想配列を作成して各要素に手動でキーを割り当てることも、組み込み関数 array_values() を使用してインデックス付き配列を変換することもできます。

ただし、配列の添字の開始点を変更する前に、本当に変更する必要があるかどうかを最初に検討する必要があります。結局のところ、PHP がデフォルトでゼロベースの添え字を使用するのは完全に理にかなっており、多くの PHP プログラマーはそれに慣れています。

以上がPHPで配列を0以外から数え始めるようにする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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