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
)