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 陣列
多維陣列 在多維陣列中,主陣列中的每個元素也是乙個陣列。在子陣列中的每個元素也可以是陣列,以此類推。例子 1 在本例中,我們建立了乙個帶有自動分配的 id 鍵的多維陣列 families array griffin array peter lois megan quagmire array glen...
php擴充套件 如何訪問php陣列
在php擴充套件中,時常需要接受php型別的陣列作為引數,php陣列的引數都是zval型別的,並不適合在擴充套件中方便的使用,一般都要提前轉換成c或cpp中的資料型別。首先看乙個轉換的例子 convert to vector const zval vals,vector string vallist...
php 陣列 PHP丨陣列
本期要點 什麼是陣列 鍵值對的概念 陣列的常用操作 增 刪 改 查 什麼是多維陣列 什麼是陣列 陣列就是一組資料的集合。如果說變數是乙個杯子的話,那麼,陣列就是一箱杯子。索引陣列與關聯陣列 arr1 1,2,3 arr2 0 1,1 2,2 3,var dump arr1,arr2 把上面的 在瀏覽...