将值放入 array_walk_recursive() 之外的数组中[重复]

2024-01-21

我想递归地查找名为“image”的键的嵌套 JSON 对象,并将它们的值(URL 字符串)推送到函数外部的另一个数组中。

从其他示例和 SO 问题中,我知道我需要传递对范围外数组变量的引用,但我对 PHP 不太熟悉,这不起作用。

$response = json_decode('deeply nested JSON array from link below');

$preload = [];

array_walk_recursive($response, function($item, $key) use (&$preload) {
  if ($key === 'image') {
    array_push($preload, $item);
  }
});

$preload运行此函数后为空,因为$key都是整数,我想它们实际上应该是 JSON 对象中的“图像”、“标题”等字符串?

这是实际的 JSON 数据:https://pastebin.com/Q4J8e1Z6 https://pastebin.com/Q4J8e1Z6

我误解了什么?


您发布的代码工作正常,尤其是回调函数的 use 子句中有关引用/别名的部分是绝对正确的。

它缺少问题中较弱的 json_decode 调用的第二个参数的小细节(第一行代码),需要将其设置为 true 才能一直向下拥有一个数组,以便对数组进行递归遍历所有预期字段。

<?php

$buffer = file_get_contents('https://pastebin.com/raw/Q4J8e1Z6');
$response = json_decode($buffer, true);

$preload = [];

array_walk_recursive($response, function($item, $key) use (&$preload) {
    if ($key === 'image') {
        $preload[] = $item;
    }
});

print_r($preload);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将值放入 array_walk_recursive() 之外的数组中[重复] 的相关文章

  • 通过身份验证保护 CodeIgniter 2 应用程序的正确方法是什么?

    I have Ion Auth http benedmunds com ion auth 正确安装并在我的服务器上运行 我也有默认的代码点火器2 新闻 教程在同一个 CI 安装中工作 我只是在玩 并对使用身份验证系统 封闭 或保护整个应用程
  • 点击 %40 变为 %2540

    当单击包含 符号的链接时 该网址给我 40 这就是我想要的 但是一旦我点击它 一秒钟后它就在我点击后变成了 2540 单击是在电子邮件内 然后定向到网站 其中 40 更改为 2540 我怎样才能让它停止变化 它现在得到这样的参数 email
  • Ajax 没有将我重定向到下一页

    我正在尝试将单击的图像的 ID 传递到下一页 当我开发代码时 它没有将我重定向到下一页 当我单击 F12 并检查网络中的 POST 时 它显示变量已正确传递到下一页 如附图所示 但它没有将我重定向到下一页 所以现在我知道变量在下一页中正确传
  • 防止 Propel 插入空字符串

    当未设置列时 如何防止 Propel ORM 插入空字符串 CREATE TABLE user uid INTEGER PRIMARY KEY AUTO INCREMENT email VARCHAR 255 NOT NULL UNIQUE
  • 使用 ImageMagick 和 PHP 将 PNG 转换为 JPG 并将透明背景设置为白色

    将图像从 PNG 转换为 JPEG 时 如何使用 ImageMagick 带有 php 扩展 将透明背景设置为白色 在撰写本文时 您尚未指定正在使用哪个扩展 但如果您使用命令行 则命令将是 convert image png backgro
  • PHP 无法打开流:是一个目录

    非常简单的 PHP 脚本 我在我亲自设置的 Ubuntu Web 服务器上的 EE 模板中运行 我知道这与权限有关 并且我已经将我尝试写入的目录的所有者更改为 Apache 用户 我得到的错误是 遇到 PHP 错误 严重性 警告 消息 fi
  • 如何对 SQL 进行多次查询

    我正在尝试创建一个表 并在 PHP 脚本的帮助下在数据库中插入一些值 虽然只插入 1 行 但效果很好 当我尝试输入更多行数时 出现错误 我需要为每个查询编写完整的插入语句 因为我正在使用在线 Excel 到 SQL 查询转换器
  • 在我的 index.php 中加载 CSS 和 JS 等资源时出现错误 403

    我使用的是 Linux Elementary OS 并在 opt 中安装了 lampp My CSS and JS won t load When I inspect my page through browser The console
  • 从类似 cronjob 的语法创建“下次运行时间”日期

    在我正在创建的应用程序中 用户可以安排重复任务 生成间隔模式的简单值是 Minute 0 59 90 each minute Hour 0 23 90 each hour Day of month 1 31 90 each day of m
  • 使用 PHP PayPal REST API 退款?

    我正在开发一个集成到 PayPal 的 REST API 中的 PHP 应用程序 我正确处理了事务并将事务 ID 保存到 MySQL 数据库中 我现在正在尝试退款 但无法让它停止给出 传入 JSON 请求未映射到 API 请求 错误 有人对
  • 访问sendBeacon发送的数据

    文档表明sendBeacon通过发送其数据HTTP POST request 但在 PHP 中 POST变量似乎是一个空数组 这是我的 JavaScript 代码 navigator sendBeacon beacon log php My
  • WordPress 包含 SVG 文件错误

    我使用 PHP 和 WordPress 在本地主机上 我可以毫无问题地包含 SVG 文件 但在实时服务器上 我尝试包含一个 SVG 文件以便能够使用 CSS 对其进行样式设置 我收到此错误消息 Parse error syntax erro
  • 对 SimpleXML 数据进行排序和分组

    我正在对 XML 文件中的出版物数据进行排序和分组 我目前使用的方法效果很好大部分情况下 尽管我觉得有一种更有效的方法来完成我想要完成的任务 以下是目标节点的示例
  • Facebook PHP SDK - 如何获取访问令牌?

    我正在尝试从我的应用程序在用户的 Facebook 墙上发帖 用户授予应用程序在他的墙上发布的权限 并且我在数据库中有用户ID 我需要自动发送帖子 而无需用户再次登录 我的代码是 try require once dirname FILE
  • PHP print_r() 中 _r 的含义是什么?

    我见过这个答案 https stackoverflow com questions 13103410 what does r suffix mean就这样 但我不确定它对于 PHP 是否相同 如果是 可重入的含义是什么 From PHP n
  • 使用 json_encode() 函数在 PHP 数组中生成 JSON 键值对

    我正在尝试以特定语法获取 JSON 输出 这是我的代码 ss array 1 jpg 2 jpg dates array eu gt 59 99 us gt 39 99 array1 array name gt game1 publishe
  • 如何删除文件

    我们有一个脚本 scripts ourscript php和一个文件 media movie1 flv 当我们运行时 我们如何删除这个文件ourscript php Using unlink http php net manual en f
  • 从所有会话中注销

    我有一个注销选项 这是我的代码 session start session destroy setcookie key time 60 60 24 setcookie username time 60 60 24 我想添加另一个选项来注销所
  • 如何从 Laravel 执行存储过程

    我需要在表单提交数据后执行存储过程 我让存储过程按照我想要的方式工作 并且我的表单正常工作 我只是不知道从 laravel 5 执行 sp 的语句 它应该是这样的 执行 my stored procedure 但我似乎在网上找不到类似的东西
  • 如果产品重量超过1000克,如何以公斤为单位显示

    在 Storefront 主题中 我使用下面的代码将格式化重量从 1000g 更改为 1kg add action woocommerce after shop loop item title show weight 10 function

随机推荐

  • IEqualityComparer 和 IEquatable 之间有什么区别?

    我想了解场景IEqualityComparer
  • 输出不正确。 C++ 入门 1.4.4

    下面的程序应该计算用户输入整数的次数 示例 用户输入 42 42 10 10 程序应该输出 42 出现 2 次 10 出现 2 次 问题 代码不会输出数字 10 的最后结果 直到您输入另一个数字 我已经粘贴了下面的代码 这段代码来自c 底漆
  • 如何在 Android 应用程序中从 WordPress 博客检索帖子?

    我正在尝试开发一个 Android 应用程序来浏览我拥有的由 Wordpress 驱动的博客 我正在尝试弄清楚如何从博客中检索帖子和其他信息以在应用程序中显示 我已经看遍了一切 但我感觉完全迷失了 这是完全可以用 Java XML 完成的事
  • 如何捕获 urllib.urlretrieve 中的 404 错误

    背景 我正在使用urllib urlretrieve http docs activestate com activepython 2 6 python library urllib html 与任何其他函数相反urllib 模块 因为钩子
  • 在文件的某个位置(行和列)启动 Vim

    要从特定行开始 我将使用 vim FILE LINE 但是需要向 vim 传递什么参数才能将光标定位到该行的某一列呢 一种方法是 vim call cursor
  • Subgit:避免将 git 分支同步到 svn

    我正在尝试使用SubGit http subgit com 但我面临着分支的问题 我希望在 Git 下创建的分支仅在 Git 中生存和消亡 我找到了这个 SubGit 如何排除分支 https stackoverflow com quest
  • 如何从 Hibernate Validator 检索默认验证消息?

    我正在尝试使用检索默认验证错误消息MessageSource 我正在使用的代码使用反射来检索message范围 在不覆盖的约束上message参数 我想检索默认的错误消息 当我调用message验证注释的方法 我得到 org hiberna
  • MS CryptoAPI 无法在 Windows XP 上使用 CryptAcquireContext() 运行

    我使用 Microsoft CryptoAPI 编写了一些代码来计算 SHA 1 并让编译后的 exe 在 Windows 7 Win Server 2008 Win Server 2003 上运行 但是 当我在 Windows XP SP
  • bootstrap-table如何使用搜索和过滤?

    我正在使用 bootstrap 绘制表格 并且需要搜索和过滤功能 但是添加过滤功能后 搜索功能就无法使用了 当我删除 行时 搜索功能起作用 但过滤功能消失 如何使用这两个功能 这是代码 div div table thead tr th I
  • 返回字符串中第 N 个字符之后的字符

    我需要帮助 有人可以让我知道如何返回第 n 个字符之后的字符吗 例如 我的字符串是 001棒球 和 002高尔夫 我希望我的代码返回棒球和高尔夫 而不是数字部分 由于数字后面的单词并不总是相同的长度 我不能使用 Right String n
  • Post 返回 405 方法不允许

    我的 Rails localhost 服务器出现问题 所有 Post 调用开始返回 405 method not allowed 但是我们的临时服务器和生产服务器上没有问题 它发生在所有代码分支上 甚至是那些尚未更新的分支上 调试时 我看到
  • 在执行 ShellExecute 之前等待?

    我有一个希望很快的问题 是否可以稍微延迟 ShellExecute 的执行 我有一个带有自动更新程序的应用程序 下载所有必需的文件等后 它将当前文件重命名为 OLD 并将新文件重命名为以前的文件 够简单的 但随后我需要删除那些 OLD 文件
  • Mockito中的Java枚举列表thenReturn

    有没有办法在mockito的thenReturn函数中枚举列表中的项目 以便我返回列表中的每个项目 到目前为止我已经这样做了 List
  • 如何更改 Flutter DevTools 默认浏览器?

    我可以更改 Flutter DevTools 使用的默认浏览器吗 它与 Firefox 或其他浏览器兼容吗 就我而言 我不太喜欢 Chrome 与 Firefox 和其他浏览器相比 我有点慢且笨重 到目前为止我还没有找到任何解决方案 甚至通
  • Aurelia 取消订阅事件聚合器

    我在用Aurelia Framework with Typescript并在event aggregator我能够发布和订阅频道 问题是我无法取消订阅频道 注意 所有形式的 subscribe 方法都会返回一个 dispose 函数 您可以
  • 在windbg中调试.Net字符串值

    我有一个 Net 应用程序转储 它捕获了一个异常 我正在使用 Windbg 进行分析 并对其中一种方法的 String 参数的值感兴趣 我已经隔离了 String 对象 我的windbg工作是 0 000 gt loadby sos msc
  • Outlook 2007 加载项部署为 DLL

    我开发了第一个 Outlook 插件 我可以看到调试加载项会自动打开 Outlook 我注意到 Outlook 所涉及的问题20 sec当我的加载项附加时打开 作为一键式新菜单 我认为这可能是由于我正在调试我的项目造成的 我将加载项发布到本
  • 使用不同版本运行 Compass/SASS

    我正在尝试找到一个适用于两个不同罗盘项目的不错的解决方案 一种是基于使用 Blueprint 的 Compass 旧版本 另一种是基于 susy grid 较新版本 目前 我必须重新安装正确的版本watch过程 是否可以运行compile有
  • 消除 matlab 图 pdf 输出周围的空白

    我想在 LaTeX 文档中使用我的 matlab 绘图的 PDF 版本 我使用带有 PDF 选项的 saveas 命令保存数字 但 pdf 文件中的绘图周围有巨大的空白 这是正常的吗 我怎样才能摆脱它 当然 这是自动的 因为我有 很多 情节
  • 将值放入 array_walk_recursive() 之外的数组中[重复]

    这个问题在这里已经有答案了 我想递归地查找名为 image 的键的嵌套 JSON 对象 并将它们的值 URL 字符串 推送到函数外部的另一个数组中 从其他示例和 SO 问题中 我知道我需要传递对范围外数组变量的引用 但我对 PHP 不太熟悉