前回の記事「PHP配列学習:空要素や重複要素を削除する方法」では、配列内の空要素や重複要素を削除する方法、つまり空要素と重複要素を削除する方法を紹介しました。配列内の重複要素 1 次元配列のインデックスをリセットする方法について簡単に説明します。 1 次元配列のインデックスはリセットできますが、2 次元配列や多次元配列のインデックスをリセットするにはどうすればよいでしょうか?以下にその方法を紹介しましょう。
→関連する推奨事項: PHP 配列学習シリーズの概要 (継続的に更新されます~)>>
まず、上記のことから次のことがわかります。 1 次元 配列のインデックスをリセットしたい場合は、array_values($array)
関数を使用するだけで非常に簡単です。
array_values() 関数は、配列内のすべての要素の値を返します。使い方は非常に簡単です。必須パラメータ $array
を 1 つだけ使用すると、値を返すことができます指定された配列内のすべての要素を含む値の配列ですが、キー名は含まれません。返される配列はインデックス付き配列の形式で、配列インデックスは 0 から始まり 1 ずつ増加します。
array_values() 関数を使用すると、カオス要素の添字を使用して配列を再配置できます。つまり、インデックスは 0 から始まり 1 ずつ増加します。この関数は、配列のインデックス付けに使用できるだけでなく、 Array を関連付けることで、連想配列をインデックス付き配列に変換することもできます。
多次元配列のインデックスをリセットするには、array_values() 関数も使用する必要があります。以下に実装方法を直接示します。
function reform_keys($array){ if(!is_array($array)){ return $array; } $keys = implode('', array_keys($array)); if(is_numeric($keys)){ $array = array_values($array); } $array = array_map('reform_keys', $array); return $array; };
テストしてください。次のような多次元配列があります。
$post = [ 0 => [ 'title' => 'xxx联票', 'price' => 368.00, 'items' => [ '33' => [ 'scenic_id' => 33, 'products' => [ 'goods_id' => 13 ] ], '1500' => [ 'scenic_id' => 1500, 'products' => [ 'goods_id' => 57 ] ], ], 'tickets' => 9 ], 10 => [ 'title' => 'zzz联票', 'price' => 500.00, 'items' => [ '157' => [ 'scenic_id' => 157, 'products' => [ 'goods_id' => 77 ], 'attr' => [ '50' => [ 'item' => '午场' ], '55' => [ 'item' => '可退' ] ] ], '19' => [ 'scenic_id' => 19, 'products' => [ 'goods_id' => 87 ] ] ], 'tickets' => 3 ], ];
Reform_keys() 関数を呼び出して、$post 配列のインデックスをリセットします。リセット配列を出力します:
$list = reform_keys($post); var_dump($list);
出力結果は次のとおりです:
多次元のすべてのレベルのインデックスが確認できます。配列 $post がリセットされ、0 から始まります。カウントが始まります。
その中で使用されている関数を紹介します:
array_keys($array)
: $array 内のすべてのキー名を取得します。 array;
$keys=implode('', array_keys($array))
: キー配列内の要素を結合し、文字列を返します $keys
。
is_numeric($keys)
: 変数 $keys が数値か数値文字列かを確認します。
array_values($array)
: すべての値を取得、つまりインデックスをリセットします;
##array_map ( 'reform_keys', $array): コールバック関数 Reform_keys() を $array 配列の各要素に適用します。
PHP 関数 配列 配列関数のビデオ説明、ぜひ学んでください。
以上がPHP 配列の学習: 多次元配列のインデックスをリセットする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。