PHPでは、アレイ操作は日常開発において避けられないタスクです。 array_valuesとarray_sliceは、非常に一般的に使用される2つの配列関数であり、開発者がより効率的に配列を処理および操作するのに役立ちます。今日は、これらの2つの機能を一緒に使用して、配列処理の効率を向上させる方法に飛び込みます。
array_values関数の関数は、配列内のすべての値を返し、配列のキーを再インデックスすることです。この関数は、配列内のすべての値を抽出し、キー名を無視し、0から始まるインデックス配列を返します。この関数は通常、次の場合に使用されます。
配列内のキー名を削除する必要がある場合、配列の値だけを気にします。
元の配列のキーが連続していない場合は、 array_valuesを使用してインデックスを再注文し、配列キー名が0から始まる連続整数であることを確認します。
例:
<span><span><span class="hljs-variable">$array</span></span><span> = [</span><span><span class="hljs-string">"a"</span></span><span> => </span><span><span class="hljs-string">"apple"</span></span><span>, </span><span><span class="hljs-string">"b"</span></span><span> => </span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-string">"c"</span></span><span> => </span><span><span class="hljs-string">"cherry"</span></span><span>];
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_values</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span></span>出力:
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[</span><span><span class="hljs-number">0</span></span><span>] => apple
[</span><span><span class="hljs-number">1</span></span><span>] => banana
[</span><span><span class="hljs-number">2</span></span><span>] => cherry
)
</span></span>上に示すように、 array_values関数は再インネックスされた配列を返し、元のキー名( a 、 b 、 c )は無視され、値のみが保持され、数値指数によって並べ替えられます。
array_slice関数は、配列から要素の一部を抽出し、その部分のサブアレイを返すために使用されます。開発者は、抽出を開始する場所と抽出する要素の数を指定できます。この関数は元の配列を変更するのではなく、新しいサブアレイを返します。
例:
<span><span><span class="hljs-variable">$array</span></span><span> = [</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-number">4</span></span><span>, </span><span><span class="hljs-number">5</span></span><span>];
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_slice</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>); </span><span><span class="hljs-comment">// インデックスから 2 抽出を開始します 2 要素</span></span><span>
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>);
</span></span>出力:
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[</span><span><span class="hljs-number">0</span></span><span>] => </span><span><span class="hljs-number">3</span></span><span>
[</span><span><span class="hljs-number">1</span></span><span>] => </span><span><span class="hljs-number">4</span></span><span>
)
</span></span>この例では、 array_sliceはインデックス2で始まり、2つの要素を抽出し、新しい配列を返します[3、4] 。
Array_valuesとArray_sliceの組み合わせは、特に不連続なインデックスアレイを扱う場合、大きな利点を完全にプレイできます。これらの2つの機能を組み合わせることで、返された配列に正しいキー値があることを確認しながら、配列を効率的にスライスできます。
いくつかの非連続インデックスを含む配列があり、 array_sliceを使用してスライスした後、インデックスが不連続になる可能性があるとします。この時点で、返された配列が0からインデックス化されていることを確認する場合は、 array_sliceの後にarray_sliceで再インデックスできます。
例:
<span><span><span class="hljs-variable">$array</span></span><span> = [</span><span><span class="hljs-number">5</span></span><span> => </span><span><span class="hljs-string">"apple"</span></span><span>, </span><span><span class="hljs-number">10</span></span><span> => </span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-number">15</span></span><span> => </span><span><span class="hljs-string">"cherry"</span></span><span>];
</span><span><span class="hljs-variable">$sliced</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_slice</span></span><span>(</span><span><span class="hljs-variable">$array</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>); </span><span><span class="hljs-comment">// インデックスから 1 始める,抽出する 2 要素</span></span><span>
</span><span><span class="hljs-variable">$reindexed</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_values</span></span><span>(</span><span><span class="hljs-variable">$sliced</span></span><span>); </span><span><span class="hljs-comment">// Reindex</span></span><span>
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$reindexed</span></span><span>);
</span></span>出力:
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[</span><span><span class="hljs-number">0</span></span><span>] => banana
[</span><span><span class="hljs-number">1</span></span><span>] => cherry
)
</span></span>この例では、 array_sliceは配列に「バナナ」と「チェリー」を抽出しますが、インデックスはまだ0と1(ソース配列では10と15)です。 array_valuesを使用した後、アレイのキーは0から起動してリセットされ、インデックスの連続性が保証されます。
Array_sliceとarray_valuesの組み合わせは、特にアレイから特定の部品を抽出する必要がある場合、大規模なデータを扱うときに特に重要です。必要な部品はarray_sliceを介して抽出され、不要なデータの読み込みと保存メモリが削減されます。同時に、返された配列インデックスはarray_valuesを介して連続して行われ、後続の処理が容易になります。
さらに、PHPのArray_Slice機能自体は、基礎となる実装で優れたパフォーマンスを備えているため、 Array_Valuesで使用すると、コード操作の効率とArray操作の単純さを確保できます。
Array_valuesとArray_sliceの組み合わせにより、PHP開発者はアレイをより柔軟かつ効率的に操作できます。 array_sliceは配列をスライスするために使用されますが、 array_valuesはインデックスの連続性を確保するために使用されます。 2つの組み合わせの後、コード構造を効果的に簡素化し、特に不規則または不連続なインデックスアレイを扱う場合、コード実行効率を改善できます。この手法は、アレイ操作の保守性を大幅に改善できます。
小規模なアレイや大規模なアレイを扱う場合でも、これら2つの機能を使用するスキルを習得すると、PHPプログラミングがより便利になります。
関連タグ:
array_values array_slice