php - 在php中获取多维数组中键的值
问题描述
在我的 php 查询中,我得到了这个输出:
{"projects":[{"id":127,"name":"efrat","status":{"id":10,"name":"development","label":"development"},"description":"","enabled":true,"view_state":{"id":10,"name":"public","label":"public"},"access_level":{"id":90,"name":"administrator","label":"administrator"},"custom_fields":[{"id":1,"name":"Customer email","type":"email","default_value":"","possible_values":"","valid_regexp":"","length_min":0,"length_max":50,"access_level_r":{"id":10,"name":"viewer","label":"viewer"},"access_level_rw":{"id":10,"name":"viewer","label":"viewer"},"display_report":true,"display_update":true,"display_resolved":true,"display_closed":true,"require_report":false,"require_update":false,"require_resolved":false,"require_closed":false}],"versions":[],"categories":[{"id":93,"name":"Monitor","project":{"id":0,"name":null}},{"id":31,"name":"Proactive","project":{"id":0,"name":null}},{"id":30,"name":"Project","project":{"id":0,"name":null}},{"id":29,"name":"Support","project":{"id":0,"name":null}}]}]}
在对它使用'json_decode'方法后,我得到了这个:“(
[projects] => Array
(
[0] => Array
(
[id] => 127
[name] => myprojectname
[status] => Array
(
[id] => 10
[name] => development
[label] => development
)
[description] =>
[enabled] => 1
[view_state] => Array
(
[id] => 10
[name] => public
[label] => public
)
[access_level] => Array
(
[id] => 90
[name] => administrator
[label] => administrator
)
[custom_fields] => Array
(
[0] => Array
(
[id] => 1
[name] => Customer email
[type] => email
[default_value] =>
[possible_values] =>
[valid_regexp] =>
[length_min] => 0
[length_max] => 50
[access_level_r] => Array
(
[id] => 10
[name] => viewer
[label] => viewer
)
[access_level_rw] => Array
(
[id] => 10
[name] => viewer
[label] => viewer
)
[display_report] => 1
[display_update] => 1
[display_resolved] => 1
[display_closed] => 1
[require_report] =>
[require_update] =>
[require_resolved] =>
[require_closed] =>
)
)
[versions] => Array
(
)
[categories] => Array
(
[0] => Array
(
[id] => 93
[name] => Monitor
[project] => Array
(
[id] => 0
[name] =>
)
)
[1] => Array
(
[id] => 31
[name] => Proactive
[project] => Array
(
[id] => 0
[name] =>
)
)
[2] => Array
(
[id] => 30
[name] => Project
[project] => Array
(
[id] => 0
[name] =>
)
)
[3] => Array
(
[id] => 29
[name] => Support
[project] => Array
(
[id] => 0
[name] =>
)
)
)
)
)
)"
在我的 PHP 中,如何从这个数组中释放“name”对象值(结果应该是 'myprojectname')?我尝试了许多 foreach 循环,但都无济于事。
谢谢,
解决方案
您的“项目”包含一个数组 ( "projects":[{"id":127, ... }]
)。我假设“项目”数组可能包含多个这样的“项目”对象?
{
"projects":
[
{
"id":127,
"name":"my-project"
},
{
"id":128,
"name":"my-other-project"
}
]
}
在这种情况下,您需要箭头符号来访问 name 属性,例如:
foreach ($projects as $project_object) {
foreach ($project_object as $project) {
echo $project->name . '<br/>';
}
}
编辑:
我采用了 OP 的最小代码示例并得到了预期的结果:
您能否在原始问题的代码片段中添加更多详细信息或向我们提供您的代码的工作示例?有一些在线 PHP 沙箱可以帮助您解决这个问题。例如:我删除了所有似乎与您的问题无关的代码,并以两种不同的方式获得了您正在寻找的结果:http: //sandbox.onlinephpfunctions.com/code/009c53671fd9545e4fcecfe4b0328974381ee2ce
总结您已经尝试过的所有 foreach 循环也是一个好主意,这样我们就可以看到您是否已经有了自己的解决方案。这样,我们可以更好地理解您的问题,并阻止我们提供您已经使用过的解决方案。
推荐阅读
- makefile - 为什么我的带有模式规则的 Makefile 不会为 main 创建调试符号?
- console - Windows 终端拆分窗格但在同一个控制台中(相同的上下文)
- python - pythonic方法来检查一个列表的任何元素是否存在于集合中
- javascript - 为什么递增 0 会在 javascript 中返回未捕获的语法错误?
- apache-kafka - 如何使用 MirrorMaker 2.0 迁移消费者偏移量?
- javascript - 从ajax调用触发动态加载内容的点击事件
- .net - 如何让 Newtonsoft.Json 以我想要的方式序列化属性名称
- node.js - 列值在节点 js sequelize 中返回 null 而不是 0
- react-native - React-native with PropTypes:检查导航参数
- 2d - 我怎样才能让刚体在戈多中跳跃而不赋予它飞行的能力