iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >在 PHP 中过滤数组
  • 433
分享到

在 PHP 中过滤数组

2024-02-27 20:02:05 433人浏览 安东尼
摘要

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

教程将教授你可用于在 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"
}

--结束END--

本文标题: 在 PHP 中过滤数组

本文链接: https://www.lsjlt.com/news/569016.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • 在 PHP 中过滤数组
    本教程将教授你可用于在 PHP 中过滤数组的不同方法。这些方法将使用内置的 PHP 函数,如 array_intersect_key、array_flip、array_filter 和 array_ke...
    99+
    2024-02-27
  • PHP中怎么用array_filter()过滤数组
    在PHP中,可以使用array_filter()函数来过滤数组。array_filter()函数的作用是使用回调函数过滤数组中的元素...
    99+
    2024-04-02
  • php如何过滤空数组
    在php中使用array_filter()函数过滤空数组,具体方法如下:array_filter()函数作用:php中array_filter()函数的作用是用于过滤数组中的元素。array_filter()函数语法:array_filte...
    99+
    2024-04-02
  • 怎么在php中利用array_filter()函数对数组进行过滤
    这篇文章给大家介绍怎么在php中利用array_filter()函数对数组进行过滤,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。php有什么用php是一个嵌套的缩写名称,是英文超级文本预处理语言,它的语法混合了C、Ja...
    99+
    2023-06-06
  • php中怎么使用array_filter()函数过滤数组
    这篇文章主要介绍php中怎么使用array_filter()函数过滤数组,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php是什么语言php,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext ...
    99+
    2023-06-14
  • PHP中的array_filter()函数用于过滤数组中的元素
    PHP中的array_filter()函数用于过滤数组中的元素,可以根据指定的回调函数对数组进行过滤,并返回过滤后的新数组。本文将介绍array_filter()函数的用法,并提供具体的代码示例。array_filter()函数的语法如下:...
    99+
    2023-11-18
    PHP array_filter 过滤数组
  • PHP如何用回调函数过滤数组中的单元
    这篇文章将为大家详细讲解有关PHP如何用回调函数过滤数组中的单元,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 使用 PHP 回调函数过滤数组单元 简介 PHP 提供了强大的数组处理功能,其中包括使用回...
    99+
    2024-04-02
  • ES5如何过滤数组
    小编给大家分享一下ES5如何过滤数组,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!过滤数组[1,2,3].filter(item...
    99+
    2024-04-02
  • 如何在JavaScript中使用filter方法过滤数组
    本篇文章给大家分享的是有关如何在JavaScript中使用filter方法过滤数组,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。JavaScript是什么JavaScript是...
    99+
    2023-06-14
  • 怎么在JavaScript中使用filter过滤数组元素
    怎么在JavaScript中使用filter过滤数组元素?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。JavaScript可以做什么1.可以使网页具有交互性,例如响应用户点...
    99+
    2023-06-14
  • JavaScript中常用的数组过滤方法
    在 JavaScript 编程中,经常会遇到需要对数组进行筛选和过滤的情况。本文将介绍几种常用的数组过滤方法,帮助你在处理数组数据时更加灵活高效。 1. 使用filter()方法 filter() 方...
    99+
    2023-10-21
    javascript 前端 开发语言
  • JS中filter( )数组过滤器的使用
    目录一、前言二、方法简介三、用法案例总结一、前言 数组过滤器是前端数据处理的一种常用方法,对于前端来说,后端返回的数据我们需要经过处理以后才能获取到自己想要的数据,进行进一步的操作。...
    99+
    2024-04-02
  • PHP中怎么实现数据过滤
    本篇文章给大家分享的是有关PHP中怎么实现数据过滤,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。PHP数据过滤调度方法这种方法是用一个单一的PHP脚本调度(通过 URL)。其他...
    99+
    2023-06-17
  • JS中filter( )数组过滤器怎么用
    这篇文章给大家分享的是有关JS中filter( )数组过滤器怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、前言数组过滤器是前端数据处理的一种常用方法,对于前端来说,后端返回的数据我们需要经过处理以后才能...
    99+
    2023-06-25
  • 在 golang 中过滤 bson.M 中的值
    一分耕耘,一分收获!既然都打开这篇《在 golang 中过滤 bson.M 中的值》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家...
    99+
    2024-04-05
  • 如何在 ASP 中使用 JavaScript 数组实现实时搜索和过滤?
    ASP 是一种广泛使用的 Web 应用程序框架,而 JavaScript 数组则是在 Web 开发中十分常用的数据结构之一。在本文中,我们将讨论如何在 ASP 中使用 JavaScript 数组来实现实时搜索和过滤功能,以提高 Web 应用...
    99+
    2023-07-22
    实时 javascript 数组
  • PHP数据过滤函数详解:filter_var、filter_input、filter_has_var等函数的数据过滤技巧
    PHP数据过滤函数详解:filter_var、filter_input、filter_has_var等函数的数据过滤技巧,需要具体代码示例在 Web 开发中,数据过滤是非常重要的一环。过滤用户输入的数据可以保护我们的应用程序免受潜在的安全威...
    99+
    2023-11-18
    数据过滤 filter_input filter_var 数据过滤函数的关键词:PHP filter_has_var
  • PHP中怎么利用filter判断过滤数据
    这期内容当中小编将会给大家带来有关PHP中怎么利用filter判断过滤数据,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。***种、PHP filter判断一个变量的内容是否符合要求使用函数filter_v...
    99+
    2023-06-17
  • PHP中的preg_grep()函数:如何使用正则表达式过滤数组中的元素
    PHP中的preg_grep()函数:如何使用正则表达式过滤数组中的元素概述:在PHP开发中,我们经常需要对数组进行过滤和处理。有时候,我们可能希望只取出数组中符合特定条件的元素。这时,就可以使用PHP中的preg_grep()函数来实现。...
    99+
    2023-11-04
    正则表达式 数组过滤 preg_grep()
  • javascript如何过滤数组重复元素
    小编给大家分享一下javascript如何过滤数组重复元素,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!javascript过滤数组重复元素的实现方法实现代码:function ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作