我的编程空间,编程开发者的网络收藏夹
学习永远不晚

在 PHP 中过滤数组

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

在 PHP 中过滤数组

本教程将教授你可用于在 PHP 中过滤数组的不同方法。这些方法将使用内置的 PHP 函数,如 array_intersect_keyarray_fliparray_filterarray_keys

在 PHP 中使用 array_intersect_keysarray_flip 过滤数组

array_intersect_keys 是一个 PHP 内置函数,它使用键来计算数组的交集。它接受两个数组作为参数

第一个数组应该是一个带有主键的数组。而第二个数组应该包含你将与之比较的键。

array_flip 是一个内置的 PHP 函数。它将所有键与它们在数组中的关联值交换。

结合这两者,你可以过滤数组。首先,你创建一个包含主键的数组。

第二个数组将包含你要检查的键。以下代码块显示了如何使用 array_intersect_keysarray_flip 过滤数组。

样本:


<?php
    $array_master = array (
        "author_name" => "John",
        "discipline" => "Computer Science",
        "Date_of_Birth" => "01/01/1970",
        "Programming Languages" => "PHP, Objective-C"
    );

    $allowed_keys = array(
        "author_name",
        "discipline"
    );

    echo "<pre>";
    var_dump(array_intersect_key($array_master, array_flip($allowed_keys)));
    echo "</pre>";
?>

输出:


array(2) {
  ["author_name"]=>
  string(4) "John"
  ["discipline"]=>
  string(16) "Computer Science"
}

在 PHP 中使用 array_filterARRAY_FILTER_USE_KEY 过滤数组

array_filter 是另一个内置函数。它使用回调函数来过滤数组的元素。

array_filter 函数接受类似 ARRAY_FILTER_USE_KEY 的标志。此标志将允许你通过其键过滤数组。

下面的代码块将提供有关如何将 array_filter()ARRAY_FILTER_USE_KEY 一起使用的详细信息。

样本:


<?php
    $array_master = array (
        "author_name" => "John",
        "discipline" => "Computer Science",
        "Date_of_Birth" => "01/01/1970",
        "Programming Languages" => "PHP, Objective-C"
    );

    $allowed_keys = array(
        "author_name",
        "discipline"
    );

    $filtered = array_filter(
        $array_master,
        function ($key) use ($allowed_keys) {
            return in_array($key, $allowed_keys);
        },
        ARRAY_FILTER_USE_KEY
    );

    echo "<pre>";
    echo var_dump($filtered);
    echo "</pre>";
?>

输出:


array(2) {
  ["author_name"]=>
  string(4) "John"
  ["discipline"]=>
  string(16) "Computer Science"
}

从 PHP 7.4 开始,你可以使用箭头函数重写之前的代码:


<?php
    $array_master = array (
        "author_name" => "John",
        "discipline" => "Computer Science",
        "Date_of_Birth" => "01/01/1970",
        "Programming Languages" => "PHP, Objective-C"
    );

    $allowed_keys = array(
        "author_name",
        "discipline"
    );

    // Here we are using an arrow
    // function in array_filter
    $filtered = array_filter(
        $array_master,
        fn ($key) => in_array($key, $allowed_keys),
        ARRAY_FILTER_USE_KEY
    );

    echo "<pre>";
    echo var_dump($filtered);
    echo "</pre>";

输出:


array(2) {
  ["author_name"]=>
  string(4) "John"
  ["discipline"]=>
  string(16) "Computer Science"
}

在 PHP 中使用 array_filterARRAY_FILTER_USE_BOTH 过滤数组

ARRAY_FILTER_USE_BOTH 是一个可以与 array_filter() 函数一起使用的标志。有了它,你可以将值和键传递给你的 callback 函数。

这种方法的优点之一是能够针对键执行任意测试

下一个代码块展示了如何使用 ARRAY_FILTER_USE_BOTHarray_filter()

样本:


<?php
    $array_master = array (
        "author_name" => "John",
        "discipline" => "Computer Science",
        "Date_of_Birth" => "01/01/1970",
        "Programming Languages" => "PHP, Objective-C"
    );

    $allowed_keys = array(
        "author_name" => true,
        "discipline" => true
    );

    $filtered = array_filter(
        $array_master,
        fn ($val, $key) => isset($allowed_keys[$key]) && ($allowed_keys[$key] === true || $allowed_keys[$key] === $val) ,
        ARRAY_FILTER_USE_BOTH
    );

    echo "<pre>";
    echo var_dump($filtered);
    echo "</pre>";
?>

输出:


array(2) {
  ["author_name"]=>
  string(4) "John"
  ["discipline"]=>
  string(16) "Computer Science"
}

PHP 中基于键长度过滤数组

你可以根据其键长度过滤数组。你可以使用这些 PHP 内置函数 array_filterarray_keysarray_intersect_keyarray_flipstrlen 来做到这一点。

你要过滤的数组应在字符串中定义其键。此外,每个字符串应至少包含三个字符长。

作为第一步,使用 array_filter()array_flipstrlen 函数的组合。使用这些函数返回符合你的条件的数组。

之后,在结果数组上使用 array_intersect_keyarray_flip


<?php
    $array_master = array (
        "author_name" => "John",
        "discipline" => "Computer Science",
        "Date_of_Birth" => "01/01/1970",
        "Programming Languages" => "PHP, Objective-C"
    );

    $filter = array_filter(
        array_keys($array_master), function ($key) {
            return strlen($key) <= 10;
        });
    $flip_array = array_intersect_key($array_master, array_flip($filter));

    echo "<pre>";
    echo var_dump($flip_array);
    echo "</pre>";
?>

输出:


array(1) {
  ["discipline"]=>
  string(16) "Computer Science"
}

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

在 PHP 中过滤数组

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

在 PHP 中过滤数组

本教程将教授你可用于在 PHP 中过滤数组的不同方法。这些方法将使用内置的 PHP 函数,如 array_intersect_key、array_flip、array_filter 和 array_keys。在 PHP 中使用 array_
在 PHP 中过滤数组
2024-02-27

怎么在php中利用array_filter()函数对数组进行过滤

这篇文章给大家介绍怎么在php中利用array_filter()函数对数组进行过滤,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。php有什么用php是一个嵌套的缩写名称,是英文超级文本预处理语言,它的语法混合了C、Ja
2023-06-06

php中怎么使用array_filter()函数过滤数组

这篇文章主要介绍php中怎么使用array_filter()函数过滤数组,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php是什么语言php,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext
2023-06-14

PHP中的array_filter()函数用于过滤数组中的元素

PHP中的array_filter()函数用于过滤数组中的元素,可以根据指定的回调函数对数组进行过滤,并返回过滤后的新数组。本文将介绍array_filter()函数的用法,并提供具体的代码示例。array_filter()函数的语法如下:
PHP中的array_filter()函数用于过滤数组中的元素
2023-11-18

如何在JavaScript中使用filter方法过滤数组

本篇文章给大家分享的是有关如何在JavaScript中使用filter方法过滤数组,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。JavaScript是什么JavaScript是
2023-06-14

怎么在JavaScript中使用filter过滤数组元素

怎么在JavaScript中使用filter过滤数组元素?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。JavaScript可以做什么1.可以使网页具有交互性,例如响应用户点
2023-06-14

PHP如何用回调函数过滤数组中的单元

使用回调函数过滤数组中的单元,通过创建一个返回布尔值的函数,使用array_filter()函数传递回调函数,返回通过回调函数过滤后的新数组。示例包括保留偶数、正数、非空字符串和按键名过滤。PHP还支持匿名函数,可以在不使用命名函数的情况下创建回调函数。
PHP如何用回调函数过滤数组中的单元
2024-04-02

JS中filter( )数组过滤器怎么用

这篇文章给大家分享的是有关JS中filter( )数组过滤器怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、前言数组过滤器是前端数据处理的一种常用方法,对于前端来说,后端返回的数据我们需要经过处理以后才能
2023-06-25

PHP中怎么实现数据过滤

本篇文章给大家分享的是有关PHP中怎么实现数据过滤,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。PHP数据过滤调度方法这种方法是用一个单一的PHP脚本调度(通过 URL)。其他
2023-06-17

iterate在大数据过滤中的应用

在大数据处理中,iterate方法是一种在集合(如ee.ImageCollection或ee.FeatureCollection)上进行循环迭代的方法,通常用于累积操作或逐步处理集合中的元素。这种方法对于实现需要逐一处理集合中每个元素的复杂
iterate在大数据过滤中的应用
2024-09-22

在 golang 中过滤 bson.M 中的值

一分耕耘,一分收获!既然都打开这篇《在 golang 中过滤 bson.M 中的值》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新Golan
在 golang 中过滤 bson.M 中的值
2024-04-05

如何在Oracle中通过变量实现数据过滤

在Oracle中,可以通过使用变量来实现数据过滤。以下是一个简单的示例:首先,定义一个变量并赋值:DEFINE department_id = 10;然后,在查询中使用变量来过滤数据:SELECT * FROM employeesWHER
如何在Oracle中通过变量实现数据过滤
2024-08-23

PHP中的preg_grep()函数:如何使用正则表达式过滤数组中的元素

PHP中的preg_grep()函数:如何使用正则表达式过滤数组中的元素概述:在PHP开发中,我们经常需要对数组进行过滤和处理。有时候,我们可能希望只取出数组中符合特定条件的元素。这时,就可以使用PHP中的preg_grep()函数来实现。
PHP中的preg_grep()函数:如何使用正则表达式过滤数组中的元素
2023-11-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录