配列のインデックスの再作成は、いくつかの組み込み関数を一緒に使用して実行できます。これらの関数は次のとおりです。
- array_combine()関数:関数array_combine()-2つの配列を組み合わせるために使用されるPHPの組み込み関数です。キー用に1つの配列を使用し、値用に別の配列を使用して、新しい配列を作成します。つまり、1つの配列のすべての要素が新しい配列のキーになり、2番目の配列のすべての要素がこの新しい配列の値になります。
- 関数 range():function range()-これはPHPの組み込み関数であり、特定の範囲の整数、アルファベットなど、任意のタイプの要素の配列を作成するために使用されます。 (低いものから高いものへ)つまり、リストの最初の要素は低いと見なされ、最後の要素は高いと見なされます。
- count()関数:関数 count()は、配列内の現在の要素をカウントするために使用されます。この関数は、空の配列に設定されている変数に対して0を返すことができます。また、設定されていない変数の場合、関数は0を返します。
- array_values、Äã‚Äã()関数:この関数は、次の目的で使用されます。キーと値のペアまたは値のみを含むことができる別の配列から値の配列を取得します。この関数は、すべての値を格納する別の配列を作成し、デフォルトで値に数値キーを割り当てます。
array_valuesを使用して、すべての値を取得します。 arrayとrange()を使用して、新しいキーまたは新しい配列インデックス(インデックスの再作成)として使用する配列要素を作成します。次に、array_combine()関数は、配列をキーと値として結合します。
例1: <? php
//連想配列を宣言する
$ arr
=
array
(
0 =>
`Tony`
、
1 =>
`Stark`
、
2 =>
`Iron`
、
3 =>
`Man`
) ;
echo
"インデックスを再作成する前の配列"
;
< br> //foreachループを使用して配列要素を出力する
foreach
(
$ arr
as
$ key
=>
$ value
){
echo
"Index:"
。
$ key
。
"Value:"
。
$ value
。
""
;
}
//連番を設定するe
$ New_start_index
= 3;
$ arr
=
array_combine
(range(
$ New_start_index
、
count
(
$ arr
)+(
$ New_start_index
-1))、
array_values、Äã‚Äã (
$ arr
));
echo
"インデックスを再作成した後の配列"
;
//foreachループを使用して配列要素を出力する
foreach
(
$ arr
as
$ key
=>
$ value
){
echo
"Index:"
。
$ key
。
"Value:"
。
$ value
。
""
;
}
?>
終了: インデックス再作成前の配列インデックス:0値:トニーインデックス:1値:スタークインデックス:2値:アイアンインデックス:3値:インデックス再作成後のマンアレイインデックス:3値:トニーインデックス:4値:スタークインデックス:5値:Ironインデックス:6値:Man
例2.配列の先頭にデータを追加してから、インデックスから配列を抽出します。 <コード><コード><? php
//連想配列を宣言する
$ arr
=
array
(
0 =>
`Tony`
、
1 =>
`Stark`
、
2 =>
`Iron`
、
3 =>
`Man`
);
echo
"インデックスを再作成する前の配列"
;
//foreachループを使用して配列要素を出力する
foreach
(
$ arr
as
$ key
=>
$ value
){
echo
"Index:"
。
$ key
。
"Value:"
。
$ value
。
""
;
}
//3の連番を設定 $ New_start_index
= 3;
$ raw_data
= range(0、
$ New_start_index
-1);
//配列の先頭にデータを追加する
foreach
(
$ raw_data
as
$ key
=>
$ value
){
array_unshift
(
$ arr
、
$ value );
}
$ arr
=
array_values、Äã‚Äã
(
$ arr
);
//不要なインデックスを削除して、10から開始します $ arr
=
array_slice
(
$ arr
、
$ New_start_index
、
count
(
$ arr
)、true);
echo
"インデックスを再作成した後の配列"
;
//foreachループを使用して配列を出力する
foreach
(
$ arr
as
$ key
=>
$ value ){
echo
"Index:"
。
$ key
。
"Value:"
。
$ value
。
""
;
}
?>
終了: インデックス再作成前の配列インデックス:0値:トニーインデックス:1値:スタークインデックス:2値:アイアンインデックス:3値:インデックス再作成後のマンアレイインデックス:3値:トニーインデックス:4値:スタークインデックス:5値:Iron Index:6値:Man
この例では、最初にいくつかのデータを配列に追加し、そのためにループを使用して再度追加してから、追加したデータを削除するため、これも最適ではありません配列のインデックスを再作成するための選択...この方法は、アルファベットキーのインデックスの再作成には適していません。例3:この例では、アルファベット配列のインデックスを再作成します`p&#39;。アルファベットのインデックスを再作成するには、次の2つの追加関数が使用されます。 - 関数ord(): ord()関数-組み込みのPHP関数で、文字列の最初の文字のASCII値。
- CHR()関数: CHR()関数は、PHPに組み込まれている関数です。 ASCII値を文字に変換するために使用されます。
<? php
//連想配列を宣言する
$ arr
=
array
(
`a`
=>
`India`
、
`b`
=>
`America`
、
`c`
=>
`Russia`
、
`d`
=>
`China`
);
echo
"インデックスを再作成する前の配列"
;
//foreachループを使用して配列要素を出力する
foreach
(
$ arr
as
$ key
=>
$ value
){
echo
"Index:"
。
$ key
。
"Value:"
。
$ value
。
""
;
}
//インデックスを`p`から設定
$ New_start_index
=
`p`
;
// ord()関数はascii値を取得するために使用されます
// chr()数値をASCIIに変換する関数
$ arr
=
array_combine
(range(
$ New_start_index
、
chr (
count
(
$ arr
)+(ord(
$ New_start_index
)-1)))、
array_values、Äã‚Äã
(
$ arr
));
echo
"インデックスを再作成した後の配列"
;
//foreachループを使用して配列を出力する
foreach
(
$ arr
as
$ key
=>
$ value ){
echo
"インデックス: "
。
$ key
。
" Value: "
。
$ value
。
""
;
}
?>
終了: インデックスを再作成する前の配列インデックス:a値:インドインデックス:b値:アメリカインデックス:c値:ロシアのインデックス:d値:インデックスを再作成した後の中国の配列インデックス:p値:インドのインデックス:q値:アメリカのインデックス:r値:ロシアのインデックス:s値:中国