打印数组非零元素_php数组如何将奇数偶数分开

点击蓝字65114d5c8e02a6bed7f1a0c36977fca5.png关注我们!每天获取最新的编程小知识!

48fc5de824aa612c7d1459b79428a152.gif

源 / php中文网      源 / www.php.cn

PHP如何在不使用循环的情况下将奇数和偶数元素与数组分开?

0f74266ea584c7b8c7b80c21bfe7d0d0.png

(查看原文请点击本文末尾左下角:

在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实现:

$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);

?>

输出如下图:

16cc3a94b25d834ade44ae6bd3693178.png

本篇就是关于php数组如何将奇数偶数分开(不使用循环的方法)的具体方法介绍,希望对需要的朋友有所帮助!

b017f173225c785b2ac037f47a0052cc.gif

-END-

声明:本文选自「 php中文网 」,搜索「 phpcnnew 」即可关注!

10870fe9ffc4aca141b1b640689b334b.png22b3ee96cf3d372ac6742f58cbabb690.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值