在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_html' target='_blank'>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數組如何將奇數偶數分開(不使用循環的方法)的具體方法介紹,希望對需要的朋友有所幫助!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答