首页 > 编程语言 >php如何定义多维数组以某个字符去输出对应的值

php如何定义多维数组以某个字符去输出对应的值

时间:2023-08-09 18:01:38浏览次数:33  
标签:字符 层级 getValueFromNestedArray field 数组 多维 array php currentKey


$arr = [
    [
        'id' => 123,
        'test' => ['id' => 2, 'title' => "测试",'test3'=>['list'=>123]]
    ]
];

$field = "test.test3.list";


foreach($arr as $k=>$v){
	$result = getValueFromNestedArray($v, $field);
	echo "最终的值:" . $result;//输出123
}


function getValueFromNestedArray($array, $field) {
    $keys = explode('.', $field);
    $currentKey = array_shift($keys);

    if (isset($array[$currentKey])) {
        if (count($keys) == 0) {
            return $array[$currentKey];
        } else {
            return getValueFromNestedArray($array[$currentKey], implode('.', $keys));
        }
    } else {
        // 字段不存在的错误处理
        echo "字段 $currentKey 不存在!";
        return null;
    }
}


/**
    以上代码都是chatgpt输出的
    
    在上面的代码中,我们定义了一个名为getValueFromNestedArray()的递归函数,用于从多维数组中获取指定字段的值。该函数接受两个参数:原始数组和需要获取的字段。

    首先,我们将字段字符串$field使用.进行拆分,得到一个字段层级数组$keys。然后,我们通过array_shift()函数获取当前字段层级$currentKey。

    接着,我们检查当前层级的字段是否存在于数组中。如果存在,我们判断是否还有剩余的字段层级。如果没有剩余的字段层级,说明已经到达最终的值,我们返回当前层级对应的值。如果还有剩余的字段层级,说明需要继续递归地进入下一层级的数组中。

    如果当前层级的字段不存在于数组中,则执行相应的错误处理。

    这样,通过调用getValueFromNestedArray()函数,你可以灵活地获取多维数组中指定字段的值
**/

 

标签:字符,层级,getValueFromNestedArray,field,数组,多维,array,php,currentKey
From: https://www.cnblogs.com/jsyphp/p/17617577.html

相关文章

  • 字符设备驱动-11.mmap机制
    1引入mmap应用程序和驱动程序之间传递数据时,可以通过read、write函数进行,用户态和内核态的数据交互一般用copy_from_user,copy_to_user。这种方式在数据量比较小时没什么问题;但是数据量比较大时效率就太低了。比如更新LCD显示时,如果每次都让APP传递一帧数据给内核,假设......
  • String字符串的时间类型比较大小
    两个时间类型的字符串,要进行大小比较比如2023-01-02T00:38:20和2023-11-02T21:00:20这两个时间,是字符串的,要进行比较如果转成时间,多少有点不太乐意,有点麻烦。更为简单的方式是直接使用compareTopublicstaticvoidmain(String[]args){Stringtime1="......
  • PHP秒杀面试题
    什么是秒杀系统:秒杀系统是一个处理大量并发用户请求的系统,通常用于限时促销或特定活动中,用户可以在特定时间内以抢购的方式购买商品或服务。秒杀系统可能面临的挑战是什么?秒杀系统可能面临以下挑战:高并发:大量用户在同一时间请求系统,可能导致服务器压力巨大。数据库压......
  • 字符串的优化
    C#正确操作字符串编程语言中,字符串类型是操作最频繁的,使用不慎,会带来额外的开销第一、尽量减少装箱。例如stringstr1="stri1"+9;                   //(1)stringstr2="str2"+9.ToString();   //(2)(1)中9发生了装箱的操作,(2)没有发生装箱行......
  • windows下Sphinx + php 简易入门案例
    Sphinx3.5.1windows使用流程官网地址下载地址下载完成后会有这样一个目录,新建data和log目录存放数据和日志将etc目录的sphinx.conf.dist文件复制一份到bin目录下,将.dist删除以下是我的配置文件,可以根据下面的进行修改,如果有特别的需求可以看下面3.x的文档sourcedoc......
  • PHP写一个 Api接口需要注意哪些?考虑哪些?
    随着互联网的飞速发展,前后端分离的开发模式越来越流行。编写一个稳定、可靠和易于使用的API接口是现代互联网应用程序的关键。本文将介绍在使用thinkphp6框架开发API接口时需要注意的要点和考虑的问题,并提供详细的逻辑步骤和代码案例。1.设计请求与响应数据结构在开始编......
  • 如何用PHP写接口
    当用PHP编写API接口时,可以使用PHP中的框架(如Laravel、Symfony、CodeIgniter等)来简化开发过程。接下来,以使用Laravel框架为例,提供一个简单的示例代码:首先,确保已经安装了Laravel框架,并在命令行中进入项目目录,执行以下命令创建一个新的API控制器和路由:phpartisanmake:controller......
  • 用PHP封装一个强大且通用的cURL方法
    用PHP封装一个强大且通用的cURL方法。用PHP封装一个强大且通用的cURL方法。用PHP封装一个强大且通用的cURL方法。用PHP封装一个强大且通用的cURL方法。/***@function强大且通用的cURL请求库*@param$urlstring路径如:https://example.com......
  • docker部署php7.3+nginx
    1.拉取php+nginx镜像dockerpullphp:7.3.24-fpm-stretchdockerpullnginx:latest 2.启动PHP:dockerrun-d-v/var/www/test:/var/www/html-p9000:9000--namexy_phpfpmphp:7.3.24-fpm-stretch 参数说明-d让容器在后台运行-p添加主机到容器的端口映射-......
  • 【Python】日期格式转换 <字符串、datetime、date>
    #coding:utf-8importdatetimefromdateutil.parserimportparsefromdateutil.relativedeltaimportrelativedeltafromloguruimportloggeraslogsclassdate_transform:"""日期格式转换"""defauto(self,d):"......