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. for循环 php 增加数组维数_PHP数组在循环中创建多维数组

    我有一个关联的多维数组,如下所示 $data = array(); $data = Array ( [0] => Array ( [class] => 1styear [branch] = ...

  2. php 数组随机排序_php 数组元素随机排序代码

    php教程 数组元素随机排序代码 因为工作需要我要对我定义好的数组进行随机排序,每一次循环都要是不同的,下面我们利用了php shuffle函数随机对数组元素进行排序.方法非常简单. shuffle( ...

  3. php数组批量赋值_PHP数组赋值方法详解

    PHP数组还是比较常用的,咸宁网站建设公司研究了一下php数组赋值,在这里拿出来和大家分享一下,希望对大家有用. 所谓数组就是一组变量的集合保存在计算机的内存中,这些变量可以是不同的类型,包括整数,布 ...

  4. PHP数组加表格_php数组输出html表格的操作方法

    class xtable { ?private $tit,$arr,$fons,$sextra; ?public function __construct() ?{ ??$this->tit=a ...

  5. 遍历strs数组,并判断数组中每一个元素的长度, * 将长度为偶数的元素和长度为奇数的元素分别存放在两个集合中,

    package Day08;import java.util.ArrayList;/*** 二* 字符串数组strs中包含字符串{"12","345",&quo ...

  6. 将一个数组里面的奇数全部排在前面,偶数排在后面

    将一个数组里面的奇数全部排在前面,偶数排在后面 方法1:使用数组. void paixu(int dest[], int n, int src[]) {int i = 0, m = n-1, k = ...

  7. Java 数组 定义一个数组,获取数组中的最大值和最小值,奇数个数和偶数个数...

    /*** 定义一个数组,获取数组中的最大值和最小值 奇数个数和偶数个数* */ package com.xuyigang1234.chp01;public class Demo8 {public st ...

  8. 输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。

    输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分. 我们首先会想到常规方法:创建一个临时数组,遍历所给数组中的所有元素,将偶数 ...

  9. 3618、存在连续三个奇数的数组

    给你一个整数数组 arr,请你判断数组中是否存在连续三个元素都是奇数的情况:如果存在,请返回 true :否则,返回 false .   示例 1: 输入:arr = [2,6,4,1] 输出:fal ...

最新文章

  1. php常用20函数,PHP常用函数
  2. 干货丨盘点人工智能从业者必备的10个深度学习方法
  3. Oracle 存储过程中查询序列值并用变量接收
  4. python开发安卓程序-python可以编写android程序吗?
  5. RDD的几种创建方式
  6. Spartacus integration library 文件夹的设计
  7. QMap与QHash
  8. @Transactional注解的失效场景
  9. C++中宏的定义与用法(现已被内联函数所代替)
  10. Spring Data Jpa 报错org.hibernate.LazyInitializationException: could not initialize proxy
  11. JDBC上传文件存入BLOB字段
  12. 一款基于VUE3.0的开源卡密发卡系统
  13. 小仲马《茶花女》读后感
  14. 飞翔 noip提高组难度
  15. 今生,只想做一个平凡的人
  16. Win10 电脑屏幕亮度随背景颜色变化而变化
  17. 目标检测中的precision,recall,AP,mAP计算详解
  18. 资深摄影师眼中,青岛值得一游的景点有哪些?
  19. discuz论坛部署及常见问题处理
  20. 江湖求生android 测试,江湖求生测试服

热门文章

  1. 新增数据并发处理,避免重复数据插入
  2. java绕过加密密码_Java实现简单密码加密功能
  3. 按钮角色 role=“button“
  4. tf-faster-rcnn指南(三)——训练模型
  5. 明日方舟系统拆解脑图
  6. 什么是Vanilla JavaScript?
  7. Nginx学习部署环境(一)
  8. 如何选择成长型新股?还是得看股票基本面!
  9. 微博怎样精准引流?这4点引流方法让用户主动加微信?
  10. 【树莓派分享——Raspberry Pi 官方系统安装及VNC查看器显示】