首页 / PHP / PHP将值推送到嵌套数组
PHP将值推送到嵌套数组
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP将值推送到嵌套数组,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1289字,纯文字阅读大概需要2分钟。
内容图文
![PHP将值推送到嵌套数组](/upload/InfoBanner/zyjiaocheng/651/f3aab27ef27d43c4b5d5abfea806288a.jpg)
我已经在php中创建了以下对象数组
$treeData[] = (object) array(
"name"=> "A",
"children" => [
[
"name"=> "A1",
"children"=> [
[
"name"=> "A1.1",
"children"=> [
[
"name"=> "A1.1.1",
"children"=> [
....
我试图根据以下条件在A1.1.1的子级中推送新值:
foreach ($treeData as $value) {
if ($value->name == 'A') {
$value->name[][] = (object) array(
"name"=> "ChildA",
"children"=> ""
);
break;
}
}
但这给我一个错误
预期结果应符合以下示例:
$treeData[] = (object) array(
"name"=> "A",
"children" => [
[
"name"=> "A1",
"children"=> [ [
"name"=> "A1.1",
"children"=> [ [
"name"=> "A1.1.1",
"children"=> [
[
"name"=> "ChildA",
"children"=> [ [
"name"=> "ChildA1"
] ]
],
[
"name"=> "ChildA",
"children"=> [ [
"name"=> "ChildA2"
] ]
],
]
] ]
] ]
]
]);
我在这里做错了什么,或以其他方式实现此目的的任何方式
我得到的错误:
“Fatal error: Uncaught Error: [] operator not supported for strings “
解决方法:
首先,您在执行操作时会收到错误:$value-> name [] [].请注意,该名称是一个字符串,因此您无法在其上使用[](数组追加运算符).
如果我是你,我将采用递归方法.考虑以下伪代码:
function addChild($root, $addToName, $nameToAdd) {
if ($root->name == $addToName)
$root->children[] = (object) array("name"=> $nameToAdd, "children"=> []);
else
foreach($root->children as $child)
addChild($child, $addToName, $nameToAdd);
}
现在调用是:addChild($treeData,’A’,“ ChildA”)
内容总结
以上是互联网集市为您收集整理的PHP将值推送到嵌套数组全部内容,希望文章能够帮你解决PHP将值推送到嵌套数组所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。