當前位置: 首頁> 最新文章列表> array_values 搭配array_slice 怎麼用?提高數組處理效率的實用技巧

array_values 搭配array_slice 怎麼用?提高數組處理效率的實用技巧

gitbox 2025-09-17

在PHP 中,數組操作是日常開發中不可避免的任務。而array_valuesarray_slice作為兩個非常常用的數組函數,能夠幫助開發者更加高效地處理和操作數組。今天,我們將深入探討如何將這兩個函數結合起來使用,從而提高數組處理的效率。

1. array_values函數簡介

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> =&gt; </span><span><span class="hljs-string">"apple"</span></span><span>, </span><span><span class="hljs-string">"b"</span></span><span> =&gt; </span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-string">"c"</span></span><span> =&gt; </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>] =&gt; apple
    [</span><span><span class="hljs-number">1</span></span><span>] =&gt; banana
    [</span><span><span class="hljs-number">2</span></span><span>] =&gt; cherry
)
</span></span>

如上所示, array_values函數返回的是一個重新索引的數組,原來的鍵名( abc )被忽略了,只保留了值,並按數字索引重新排序。

2. array_slice函數簡介

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>] =&gt; </span><span><span class="hljs-number">3</span></span><span>
    [</span><span><span class="hljs-number">1</span></span><span>] =&gt; </span><span><span class="hljs-number">4</span></span><span>
)
</span></span>

在這個例子中, array_slice從索引2 開始,提取了2 個元素,返回了一個新的數組[3, 4]

3. array_valuesarray_slice結合使用

array_valuesarray_slice的結合使用能夠發揮巨大的優勢,特別是在處理不連續的索引數組時。結合這兩個函數,我們可以高效地對數組進行切片操作,同時確保返回的數組有正確的鍵值。

假設你有一個數組,其中包含了一些非連續的索引,使用array_slice來切片後,索引可能會不連續。此時,如果你希望確保返回的數組從0 開始索引,可以在array_slice之後使用array_values進行重新索引。

示例

 <span><span><span class="hljs-variable">$array</span></span><span> = [</span><span><span class="hljs-number">5</span></span><span> =&gt; </span><span><span class="hljs-string">"apple"</span></span><span>, </span><span><span class="hljs-number">10</span></span><span> =&gt; </span><span><span class="hljs-string">"banana"</span></span><span>, </span><span><span class="hljs-number">15</span></span><span> =&gt; </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">// 重新索引</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>] =&gt; banana
    [</span><span><span class="hljs-number">1</span></span><span>] =&gt; cherry
)
</span></span>

在這個例子中, array_slice提取了數組中的"banana""cherry" ,但是它們的索引仍然是0 和1(源數組中的10 和15)。使用array_values後,數組的鍵被重置,從0 開始,確保了索引的連續性。

4. 提高效率的場景

當處理大規模數據時,尤其是在需要從數組中提取某些部分時, array_slicearray_values的結合使用顯得尤為重要。通過array_slice提取需要的部分,減少不必要的數據加載,節省內存;同時通過array_values使得返回的數組索引連續,方便後續的處理。

此外,PHP 的array_slice函數本身在底層實現上就具有較好的性能,因此與array_values一起使用,能夠保證代碼運行效率和數組操作的簡潔性。

5. 小結

通過array_valuesarray_slice的結合使用,PHP 開發者可以更靈活、更高效地操作數組。 array_slice用於切片數組,而array_values則用於確保索引連續。兩者結合後,能夠有效地簡化代碼結構,並提高代碼的執行效率,尤其是在處理不規則或非連續索引的數組時,這種技巧能夠大大提升數組操作的可維護性。

無論是在處理小規模數組,還是大數據量的數組時,掌握這兩個函數的使用技巧,將使得你的PHP 編程更加得心應手。