PHP 比较和更改多维数组中的某些元素

2023-12-29

简而言之,我有两个简单的数组,我想验证第二个数组中的某些键是否具有空值,并将它们替换为第一个数组中的对应值。

Example:

$a1 = [ 1 => 'one', 2 => 'two', 3 => 'three',5=>'cinco', 6=>'six'];
$a2 = [ 2 => 'two', 5=>'five', 6=>'' ];

Result:

Array
(
    [2] => two
    [5] => five
    [6] => six
)

以下代码已经适用于此。

$keys = array_keys($a1);
foreach ($keys as $k)
{
    if ((isset($a2[$k])) && (($a2[$k]) == '')) {
     $a2[$k] = $a1[$k];
    }
}
print_r($a2);

但是如果我们想将其应用于两个二维数组怎么办?在这种情况下,正确的方法是什么?假设这两个二维数组是:

$superheroes_complete = array(
    "spiderman" => array(
        "name" => "Peter Parker",
        "email" => "[email protected] /cdn-cgi/l/email-protection",
    ),
    "superman" => array(
        "name" => "Clark Kent",
        "email" => "[email protected] /cdn-cgi/l/email-protection",
    ),
    "ironman" => array(
        "name" => "Harry Potter",
        "email" => "[email protected] /cdn-cgi/l/email-protection",
    )
);

$superheroes_empty = array(
    "spiderman" => array(
        "name" => "Peter Parker",
        "email" => "",
    ),
    "superman" => array(
        "name" => "Clark Kent",
        "email" => "something",
    ),
    "ironman" => array(
        "name" => "Harry Potter",
        "email" => "another one",
    )
);

期待:

$superheroes = array(
    "spider-man" => array(
        "name" => "Peter Parker",
        "email" => "[email protected] /cdn-cgi/l/email-protection",
    ),
    "super-man" => array(
        "name" => "Clark Kent",
        "email" => "something",
    ),
    "iron-man" => array(
        "name" => "Harry Potter",
        "email" => "another one",
    )
);

非常感谢并提前感谢您!


您已经向数据添加了另一个级别,因此您也可以使用第二个级别向检查添加另一个级别foreach loop:

foreach ($superheroes_complete as $hero => $info) {
    foreach ($info as $key => $value) {
        if (empty($superheroes_empty[$hero][$key])) {
            $superheroes_empty[$hero][$key] = $value;
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 比较和更改多维数组中的某些元素 的相关文章

随机推荐

  • “记住我”身份验证功能是否总是意味着“不安全”网站?

    我正在考虑实施经典 记住我 复选框在我的网络应用程序上 允许经过身份验证的用户在返回访问我的网站后被 记住 Gmail http www gmail com Facebook http www facebook com其他人也有这种功能 但
  • Eigen Matrix 与 Numpy Array 乘法性能

    I read 在这个问题中 https stackoverflow com questions 10366054 c performance in eigen librar that eigen具有非常好的性能 但是 我尝试比较eigen
  • 类型化数据集的缺点是什么

    我来自一个喜欢构建自己的世界 而不是依赖他人构建的库和框架 逃离这个世界后 我发现了在 Visual Studio 中使用类型化数据集等工具的乐趣和轻松 那么除了失去灵活性之外 你还失去了什么 是否存在性能因素 忽略 procs 与动态 s
  • MVC 控制器操作参数为空

    我有控制器名称 District 和操作名称 Incharges 但我希望 URL 是这样的 带有一些参数的操作名称 www example com district incharges aaa www example com distri
  • Javascript无符号短到有符号短

    我有以下代码 var v 0xFF 0xFF alert v 0 lt lt 8 v 1 并警告 65535 最大空头值 如何将此字节数组视为有符号短整型 并获取该数组的有符号值 假设高位为符号 var sign v 0 1 lt lt 7
  • 如何自定义 JQPlot 周围的黑色边框

    如何在 JQPlot 中自定义图表周围的黑色边框 我广泛搜索了 CSS 文件 但没有找到任何内容 UPDATE 如果您不明白我的意思 请看这张图片 http img339 imageshack us img339 5796 jqplot p
  • 支持多种TLS协议的HttpClient

    我们正在编写一个必须使用 HTTPS 与一些服务器通信的应用程序 它需要与 AWS 使用 AWS 库 以及我们使用 TLS 1 2 的一些内部服务进行通信 我首先将 HttpClient 更改为使用 TLS 1 2 SSLContext p
  • 我对 PHP 会话的理解是否正确?

    我一直对会话内部如何工作很感兴趣 但我对 C 知之甚少 并且不确定在 PHP 源代码中哪里可以找到这一点 这是我目前对会话的理解 当您启动会话时 用户会被分配一个存储在 cookie 中的会话 ID 保存会话数据时 通过 SESSION 它
  • PHP 文件上传类型检查

    好的 这是我上传文件的代码 ext whitelist array pdf doc doc mkv mp4 mpg mpeg avi flv wma ogg if in array ext ext whitelist uniqid file
  • Firebase 托管应用引擎 URL 的 Access-Control-Allow-Origin

    我在 Firebase 托管上托管一个单页应用程序 我需要允许对应用程序引擎的跨域请求 应用程序托管在project id firebaseapp com 上 应用程序引擎服务托管在project id appspot com 上 我把部署
  • 如何用RadWindow替换警报消息框

    My Code
  • 在 Obj-C 中获取 AppleScript 返回值

    我在 Obj C cocoa 项目中使用一些 AppleScript 来控制 QuickTime 播放器 播放 暂停 停止 快进和快退等 取得了巨大成功 尽管我对 AppleScript 的了解非常有限 然而 我最想要的是电影的 当前时间
  • R:在循环内定义函数

    在循环中定义多个函数 par lt 1 2 parameters for functions qF lt list list I will write the functions into for i in 1 2 qF i lt func
  • 使用 CSS 将顶部和底部边框添加到一组选定元素

    所以我有一个搜索结果网格 这些结果是可选择的 当它们被选择时 我添加class selected 给他们 可以有多组结果 通过命令 按住 Ctrl 键单击行来完成 我所说的结果组是指选择的连续元素 我想要做的是 仅向任何给定的选定结果组的第
  • 获取所有登录用户

    我想有自己的聊天 我无法使用聊天模块 因为我必须对其进行个性化 我必须检索所有在线用户 但我看不到任何变量 我只能获取当前登录用户的名称 而无法获取其余登录用户的名称 您可以通过查询会话表来获取所有登录用户的列表 我假设您使用的是 Drup
  • 在 ASP.net Core Web Api 中动态选择身份验证方案

    我正在将使用 OWIN 和 NET Framework 构建的自托管 Web API 移植到 ASP NET Core Web API 使用 NET 6 0 在原始 API 中 我有一个自定义身份验证机制 可以根据请求中的标头动态为每个调用
  • MailChimp API 成员信息问题

    我需要通过 api 检索所有用户信息 在我发现的文档中查找它 http apidocs mailchimp com api 2 0 lists member info php http apidocs mailchimp com api 2
  • 无法安装包车

    我在 Linux mint 17 3 64 位中使用 R 版本 3 2 3 我试图安装包 car dependencies TRUE 但安装失败并出现以下错误消息 gt warnings Warning messages 1 In inst
  • 通过 VBA 使用 SFTP 下载文件

    我的目标是从 SFTP 服务器下载文件 而不是上传文件 并且我正在尝试调整本网站上另一个问题的代码来执行此操作 为了方便起见 我粘贴了下面的代码 我从 Putty 下载了 PSFTP 当我尝试使用以下命令行进行连接时 PSFTP 关闭 op
  • PHP 比较和更改多维数组中的某些元素

    简而言之 我有两个简单的数组 我想验证第二个数组中的某些键是否具有空值 并将它们替换为第一个数组中的对应值 Example a1 1 gt one 2 gt two 3 gt three 5 gt cinco 6 gt six a2 2 g