php多维数组过滤器,php 数组过滤

本文目录一览:

php 二维数组过滤相同的值

$tmp=array();

$s=array();//你的数组

foreach($s as $k=$v){

if(in_array($v[‘name’],$tmp)){

unset($s[$k]);

}

$tmp[]=$v[‘name’];

}

var_dump($s);

PHP 关联数组操作太麻烦,试试 WPJAM Basic 内置的数组处理函数

PHP 有很多非常好用的数组处理函数,PHP 数组函数官方文档都有 80 多个,但是在使用过程,有一些数组的操作使用比较多,我就把这些函数整理成工具函数,然后整合到 WPJAM Basic 中,方便自己的二次开放时候使用,现在整理放出来,如果你和我一样基于 WPJAM Basic 进行二次开发,也可以使用:

PHP 从关联数组中移除指定的键值对,一般使用 unset 函数,比如:

如果要移除多个键值对,就要调用多次的 unset 函数,所以就合并成一个函数 :

这样就可以通过下面方式移除键值对了:

如果仅仅移除一个键值对,还可以直接传递字符串:

我们使用 array_filter 对数组进行过滤的时候,是不会递归调用的,意思如果其中元素也是数组的时候,是不会进行同样的过滤的操作。

输出结果为:

但是我们在一些数据处理的时候,比如后台字段提交的时候,我们希望过滤掉 null 的值,如果元素也是一个关联数组的时候,我们希望关联数组元素中的 null 的值也会过滤掉。所以我们就写了 wpjam_array_filter 这个函数,实现 array_filter 递归调用:

同样的数组:

输出结果为:

PHP 的 array_filter() 函数让我们可以通过回调函数来过滤数组,但是返回的是过滤后的数组,但是很多时候,我们只是简单的要求 返回过滤之后数组的第一个元素 :

使用非常简单的:

如果我们要合并的数组是多维的关联数组,那么使用 array_merge_recursive() 函数进行合并的话,不会进行键名覆盖,而是将多个相同键名的值递归合并成一个数组。

输出结果:

其实我们希望子数组里面的相同的值覆盖,据此我们写了一个函数,用来深度合并多维数组:

相同的数组进行合并:

得到的结果是:

一般不推荐使用 wpjam_array_merge 对多维索引数组进行合并。

要从关联数组中移除并返回指定的键值,一般需要两步操作,先取出,然后 unset 数组中的键值对:

如果每次都这么操作,有点烦人,所以就把这两个步骤合成一个函数,并且还可以设置数组中无此键对应的元素的时候的默认值。

然后直接调用即可:

PHP 关联数组可以通过三种方式插入新元素:

由此可见,关联数组插入元素是无法指定位置的,只能插在最前或者最后面,所以这个函数就是实现 向关联数组插入 元素时候指定的 Key 之前 :

比如下面在 $columns 的 ‘author’ 之前插入 [‘page_title’=’页面标题’] :

php中一维或多维数组去除重复项

方案一

$arr = array(“0a”,”1b”,”2c”,”3d”,”4e”,”5f”,”6g”,”0a”,”2c”,”4e”,”6g”,”6g”);

$arr1 = array_flip($arr);

$arr2 = array_flip($arr1);

print_r($arr2);

方案二

$arr = array(“0a”,”1b”,”2c”,”3d”,”4e”,”5f”,”6g”,”0a”,”2c”,”4e”,”6g”,”6g”);

$a = array_count_values($arr);

$b = array_keys($a);

print_r($b);

方案三

$arr = array(“0a”,”1b”,”2c”,”3d”,”4e”,”5f”,”6g”,”0a”,”2c”,”4e”,”6g”,”6g”);

foreach($arr as $k=$v){

$arr1[$v] = $k;

$arr2 = array_flip($arr1);

}

print_r($arr2);

方案四

$arr = array(“0a”,”1b”,”2c”,”3d”,”4e”,”5f”,”6g”,”0a”,”2c”,”4e”,”6g”,”6g”);

$arr1 = array_unique($arr);

print_r($arr1);

都是刚刚我实验出来的 都可以封装起来用递归实现多维去掉重复项

php 如何去除多维数组指定重复出现的值

array_unique

()

函数用于移除数组中重复的值。如果两个或更多个数组值相同,只保留第一个值,其他的值被移除。

注意:被保留的数组将保持第一个数组项的键名类型

php 一个多维数组根据一维数组筛选数据,得到新数组

?php

// 定义数组 1

$arr1 = array(

    ‘BL001’ = array(

        ‘0’ = ‘A14257’,

        ‘1’ = ‘B17548’

    ),

    ‘CDF002’ = array(

        ‘0’ = ‘A14257’,

        ‘1’ = ‘C48751’

    ),

    ‘FGE453’ = array(

        ‘0’ = ‘DF5533’,

        ‘1’ = ‘GR6445’,

        ‘2’ = ‘GH5544’

    ),

    ‘GEN001’ = array(

        ‘0’ = ‘NT7532’,

        ‘1’ = ‘DE9342’,

        ‘2’ = ‘C48751’

    )

);

// 定义数组 2

$arr2 = array(

    ‘A14257’,

    ‘E453T4’,

    ‘Y64344’,

    ‘FG4809’,

    ‘C48751’,

    ‘H4443R’

);

// 定义结果数组 $result

$result = array();

foreach ( $arr1 as $k = $v ) // 遍历数组 1

    foreach ( $v as $s ) // 遍历数组 1 第 2 维

        if ( in_array( $s, $arr2 ) ) { // 包含数据 2 的任意值

            if ( ! isset( $result[$k] ) || ! is_array( $result[$k] ) )

                $result[$k] = array();

            $result[$k][] = $s; // 添加到结果数组

        }

// 输出测试结果

print_r( $result );

/*

Array

(

    [BL001] = Array

        (

            [0] = A14257

        )

    [CDF002] = Array

        (

            [0] = A14257

            [1] = C48751

        )

    [GEN001] = Array

        (

            [0] = C48751

        )

)

*/

原创文章,作者:UOAB,如若转载,请注明出处:https://www.506064.com/n/146297.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
UOABUOAB
上一篇 2024-10-29 18:59
下一篇 2024-10-29 19:00

相关推荐

  • PHP和Python哪个好找工作?

    PHP和Python都是非常流行的编程语言,它们被广泛应用于不同领域的开发中。但是,在考虑择业方向的时候,很多人都会有一个问题:PHP和Python哪个好找工作?这篇文章将从多个方…

    编程 2025-04-29
  • Python导入数组

    本文将为您详细阐述Python导入数组的方法、优势、适用场景等方面,并附上代码示例。 一、numpy库的使用 numpy是Python中一个强大的数学库,其中提供了非常丰富的数学函…

    编程 2025-04-29
  • Python返回数组:一次性搞定多种数据类型

    Python是一种多用途的高级编程语言,具有高效性和易读性的特点,因此被广泛应用于数据科学、机器学习、Web开发、游戏开发等各个领域。其中,Python返回数组也是一项非常强大的功…

    编程 2025-04-29
  • Python去掉数组的中括号

    在Python中,被中括号包裹的数据结构是列表,列表是Python中非常常见的数据类型之一。但是,有些时候我们需要将列表展开成一维的数组,并且去掉中括号。本文将为大家详细介绍如何用…

    编程 2025-04-29
  • Python操作数组

    本文将从多个方面详细介绍如何使用Python操作5个数组成的列表。 一、数组的定义 数组是一种用于存储相同类型数据的数据结构。Python中的数组是通过列表来实现的,列表中可以存放…

    编程 2025-04-29
  • PHP怎么接币

    想要在自己的网站或应用中接受比特币等加密货币的支付,就需要对该加密货币拥有一定的了解,并使用对应的API进行开发。本文将从多个方面详细阐述如何使用PHP接受加密货币的支付。 一、环…

    编程 2025-04-29
  • Python二维数组对齐输出

    本文将从多个方面详细阐述Python二维数组对齐输出的方法与技巧。 一、格式化输出 Python中提供了格式化输出的方法,可以对输出的字符串进行格式化处理。 names = [‘A…

    编程 2025-04-29
  • Java创建一个有10万个元素的数组

    本文将从以下方面对Java创建一个有10万个元素的数组进行详细阐述: 一、基本介绍 Java是一种面向对象的编程语言,其强大的数组功能可以支持创建大规模的多维数组以及各种复杂的数据…

    编程 2025-04-28
  • Python数组随机分组用法介绍

    Python数组随机分组是一个在数据分析与处理中常用的技术,它可以将一个大的数据集分成若干组,以便于进行处理和分析。本文将从多个方面对Python数组随机分组进行详细的阐述,包括使…

    编程 2025-04-28
  • Python数组索引位置用法介绍

    Python是一门多用途的编程语言,它有着非常强大的数据处理能力。数组是其中一个非常重要的数据类型之一。Python支持多种方式来操作数组的索引位置,我们可以从以下几个方面对Pyt…

    编程 2025-04-28

发表回复

登录后才能评论