📌  相关文章
📜  PHP |不使用循环从数组中分离奇数和偶数元素

📅  最后修改于: 2022-05-13 01:56:28.566000             🧑  作者: Mango

PHP |不使用循环从数组中分离奇数和偶数元素

在PHP中给你一个包含 n 个元素的数组。您必须根据元素的奇数或偶数将元素与数组分开。即分别打印奇数数组和偶数数组,无需遍历原始数组或使用任何循环。

例子:

Input : array(2, 5, 6, 3, 0)
Output : Odd array: 5 , 3
         Even array: 2, 6, 0

Input : $input = array(0, 1, 2, 3, 4, 5)
Output : Odd array: 1, 3, 5
         Even 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。

算法 :

Filter elements :
filter odd elements by array_filter().filter even elements by array_filter().
Re-index Arrays :
re-index odd-array by use of array_values().re-index even-array by use of array_values().
Print both of the odd/even array.

以下是上述算法的PHP实现:


输出 :

Odd array :
Array
(
    [0] => 3
    [1] => 5
    [2] => 7
)

Even array :
Array
(
    [0] => 4
    [1] => 6
    [2] => 8
    [3] => 2
)