PHP では、デフォルトの配列添字は 0 から始まります。ただし、シナリオによっては、配列の添字を 1 から開始するように変更する必要がある場合があります。この記事では、この要件を達成するための 3 つの方法を紹介します。
方法 1: 配列の添字を手動で変更する
配列の添字を手動で変更するのが最も簡単な方法です。配列を定義してデータを入力するときは、添え字を 1 から増やしていくだけです。例:
$arr = array( 1 => '第一个元素', 2 => '第二个元素', 3 => '第三个元素' );
このように処理すると、配列の添字は 1、2、3 になります。
配列の添字を 1 から開始するように変更する場合は、添字を手動で指定する必要があることに注意してください。デフォルトの方法では配列を埋めることはできません。それ以外の場合、添え字は 0 から始まります。
方法 2: 配列ポインタを変更する
PHP では、reset 関数を使用して配列ポインタを最初の要素にリセットし、end 関数を使用して配列ポインタを最初の要素に移動できます。最後の要素。配列ポインターを -1、つまり 0 番目の要素の前に移動できる場合は、配列の添え字を 1 から開始するように変更できます。
コード例:
$arr = array('第一个元素', '第二个元素', '第三个元素'); end($arr); // 移动到最后一个元素 $idx = key($arr); // 保存最后一个元素的下标 reset($arr); // 将指针重置到第一个元素 $i = 0; while(key($arr) !== $idx) { $i++; next($arr); // 指针后移 $arr_new[$i] = current($arr); // 保存当前元素到新数组 } $arr_new[1] = $arr[0]; // 将第0个元素移动到下标为1的位置
上記のコードは、配列 $arr の添字を 1 から始まるように変更します。
この方法は、ポインタを複数回移動する必要があるため、比較的非効率であることに注意してください。また、配列の 0 番目の要素が存在する場合は、特別な処理が必要です。
方法 3: array_combine 関数を使用する
array_combine 関数は、1 つの配列を添字として使用し、別の配列を値として使用して、新しい連想配列を作成できます。添字配列として 0、1、2、および 3 を使用し、値配列として元の配列の値を使用する場合、添字を 1 から始まるように変更できます。
コード例:
$arr = array('第一个元素', '第二个元素', '第三个元素'); $arr_new = array_combine(range(1, count($arr)), $arr);
上記のコードは、インデックスが 1 から始まる新しい配列 $arr_new を作成します。
range 関数によって生成される配列の長さは、元の配列の長さと同じでなければならないことに注意してください。 2 つの配列の長さが一致しない場合、警告が生成されます。さらに、このアプローチは連想配列でのみ機能します。通常のインデックス付き配列の場合、配列の添字は並べ替えられる場合があります。
概要
PHP 配列の添字を 1 から開始する必要がある場合があります。3 つの方法の中で、配列の添字を手動で変更するのが最も直観的でパフォーマンスの高い方法です。ポインター メソッドは実行可能ですが、効率が低く、適用範囲が限られています。array_combine 関数を使用することもより良い方法ですが、適用範囲は狭く、連想配列にのみ適用されます。実情に応じてニーズに合わせて適切な方法を選択する必要があります。
以上がPHPの配列添字を1から始める方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。