我有两个不同长度的嵌套数组,我想让第二个数组的长度与第一个数组的长度相同。我想让第二个数组的长度与第一个数组的长度相同,请看下面的例子。只需删除所有在第一个数组中不存在的项目。有时第二个数组的值比第一个数组多,这种情况下,我的树形结构就会被破坏,这些数组是嵌套数组,所以简单的array_slice是行不通的。
下面是数组的结构。第一个数组"1": {
"id": "1",
"username": "username",
"children": [
{
"id": "-1",
"username": "NULL",
"children": [
{
"id": "-1",
"username": "NULL",
"children": [
{
"id": "-1",
"username": "NULL",
"children": []
}
]
}
]
}
]
}第二阵列"157": {
"id": "157",
"username": "test1",
"children": [
{
"id": "158",
"username": "test1",
"children": [
{
"id": "159",
"username": "test2",
"children": [
{
"id": "160",
"username": "test3",
"children": []
},
{
"id": "160",
"username": "KICK ME BECAUSE I M NOT EXIST IN FIRST ARRAY",
"children": []
}
]
}
]
},
{
"id": "160",
"username": "KICK ME BECAUSE I M NOT EXIST IN FIRST ARRAY",
"children": [
{
"id": "159",,
"username": "KICK ME BECAUSE I M NOT EXIST IN FIRST ARRAY",
"children": [
{
"id": "161",
"username": "KICK ME BECAUSE I M NOT EXIST IN FIRST ARRAY",
"children": []
}
]
}
]
}
]
}预期产出"157": {
"id": "157",
"username": "test1",
"children": [
{
"id": "158",
"username": "test1",
"children": [
{
"id": "159",
"username": "test2",
"children": [
{
"id": "160",
"username": "test3",
"children": []
},
]
}
]
},
]
}
我正在尝试这个方法,但它不工作。$firstCount = (array_map('count', $actualTree));
$secondCount = (array_map('count', $emptyTree));
$chunk = array_slice($actualTree, 0 , $second[$this->userId], true);使用案例
我想做的事情是完全删除那些不存在于第一个数组中的数组子代。我正在建立一棵二进制树,一共有三层。第一个数组已经有了一个空值的二进制树,第二个数组是来自数据库的数据,我正在建立一个二进制树,一共有三层。第二个数组是来自数据库的数据,我只是简单地使用array_replace将空数据替换为实际数据。这样做很好,直到第二个数组的值比第一个数组多。所以为了让它工作,我必须删除这些额外的元素。
有谁能帮我把这些元素的长度改成相同的。任何帮助将被感激。先谢谢你。