首頁  >  文章  >  後端開發  >  php數組如何將奇數偶數分開

php數組如何將奇數偶數分開

藏色散人
藏色散人原創
2019-01-14 13:21:464607瀏覽

PHP如何在不使用迴圈的情況下將奇數和偶數元素與陣列分開?

php數組如何將奇數偶數分開

在PHP中,您將會得到n個元素的陣列。您必須根據元素奇數或偶數將元素與陣列分開。也就是說,分別列印奇數數組和偶數數組而不遍歷原始數組或使用任何循環。

範例:

输入: array(2, 5, 6, 3, 0)
输出: 奇数array: 5 , 3
         偶数array: 2, 6, 0

输入: $input = array(0, 1, 2, 3, 4, 5)
输出: 奇数array: 1, 3, 5
         偶数array: 0, 2, 4

透過遍歷數組並列印奇數甚至單獨的元素可以輕鬆解決這些類型的問題,但這會佔用更多的程式碼行,並且程式碼中也會出現循環開銷。因此,為了避免使用循環,我們將嘗試使用PHP的一些內建函數。這裡我們使用兩個PHP陣列函數array_filter()和array_values()來解決這個問題。

array_filter():此函數將用於過濾輸入陣列中的奇數/偶數元素。

array_values():此函數將用於重新索引奇數和偶數數組,因為array_filter奇數和偶數數組具有與其元素在輸入數組中具有的索引相同的索引。

注意: array_filter()函數只會過濾奇數/偶數索引元素及其索引值。應用array_filter()函數後,奇數數組的索引將為1,3,5,偶數數組的索引將為0,2,4。

演算法:

過濾元素

透過array_filter()過濾奇數元素。

透過array_filter()過濾偶數元素。

重新索引陣列:

使用array_values()重新索引奇數數組。

使用array_values()重新索引偶數數組。

列印奇數/偶數數組。

以下是上述演算法的PHP實作:

<?php 
$input = array(4, 3, 6, 5, 8, 7, 2); 
function oddCmp($input) 
{ 
    return ($input & 1); 
} 
  
function evenCmp($input) 
{ 
    return !($input & 1); 
} 
  
$odd = array_filter($input, "oddCmp"); 
  
$even = array_filter($input, "evenCmp"); 
  
$odd = array_values(array_filter($odd)); 
  
$even = array_values(array_filter($even)); 
  
print"奇数数组:\n"; 
print_r($odd); 
  
print"偶数数组:\n"; 
print_r($even); 
  
?>

輸出如下圖:

php數組如何將奇數偶數分開

##本篇就是關於php數組如何將奇數偶數分開(不使用循環的方法)的具體方法介紹,希望對需要的朋友有幫助!

以上是php數組如何將奇數偶數分開的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn