MergeTOW多维阵列以形成亲子关系

问题描述 投票:0回答:1
$men

$sub
,我想用这种情况对它们进行排序:
if($men["titre"] == $sub["menuParent"])
我将包含$ sub [menuparent']的第二个数组的内容放在第一个。 Case:
//Array1 ($menu)

array(3) {
  ["menu1"] => array(3) {
    ["titre"] => string(6) "Title2"
    ["lien"] => string(0) ""
    ["order"] => string(1) "2"
  }
  ["menu2"] => array(3) {
    ["titre"] => string(6) "Title3"
    ["lien"] => string(10) "google.com"
    ["order"] => string(1) "3"
  }
  ["menu3"] => array(3) {
    ["titre"] => string(6) "Title1"
    ["lien"] => string(0) ""
    ["order"] => string(1) "1"
  }
}

//Array2 ($submenu)

array(3) {
  ["submenu1"] => array(3) {
    ["titre"] => string(9) "SubTitle2"
    ["menuParent"] => string(6) "Title2"
    ["order"] => string(1) "2"
  }
  ["submenu2"] => array(3) {
    ["titre"] => string(9) "SubTitle3"
    ["menuParent"] => string(6) "Title2"
    ["order"] => string(1) "3"
  }
  ["submenu3"] => array(3) {
    ["titre"] => string(9) "SubTitle1"
    ["menuParent"] => string(6) "Title1"
    ["order"] => string(1) "1"
  }
}

在这里有:

array1

array2 现在,

["menu1"]["titre"] => string(6) "Title2"

["submenu1"]["menuParent"] => string(6) "Title2"

值是相同的,所以我推动: ["menu1"]["titre"]

in:

["submenu1"]["menuParent"]

像这样的孩子:
"Title2"
我为整个元素做所有这些

我的尝试是我的尝试,但是它将所有元素推向
["submenu1"] => array(3) { ["titre"] => string(9) "SubTitle2" ["menuParent"] => string(6) "Title2" ["order"] => string(1) "2" }

,而不是
["menu1"] => array(3) {
    ["titre"] => string(6) "Title2"
    ["lien"] => string(0) ""
    ["order"] => string(1) "2"
  }

array(3) { ["menu1"] => array(3) { ["titre"] => string(6) "Title2" ["lien"] => string(0) "" ["order"] => string(1) "2" ["child"] => array(3) { [0] => array(3) { ["titre"] => string(9) "SubTitle2" ["menuParent"] => string(6) "Title2" ["order"] => string(1) "2" } }

["menu2"]

我的尝试:


["submenu1"]

恢复:
["submenu2"]
我在哪里,如果有人可以向我解释为什么以及我以良好的方式解释。
    
	
问题是您选择钥匙的地方,您可以使用
["menu1"]
方法获取每个项目的键与当前的相同)。  另外,您可以使用&$ men,&允许您更改原始数组元素,而不是创建一个新的条目,并试图将新元素推入数组...

["submenu3"]

Gives...

["menu3"]

update:

使用
/*Injection submenu to Menu*/
foreach($menu as $men) {
    foreach($submenu as $sub) {
        if($men["titre"] == $sub["menuParent"]){
        $key = key($menu);
        $menu[$key]['child'][] = array($sub["titre"], $sub["menuParent"], $sub["order"]);
        //My array_push doesn't work also
        array_push($menu, array($sub["titre"], $sub["menuParent"], $sub["order"]))
        }

    }
}
代码,请注意,在设置数据时,它不再使用键,而是使用$ MEN变量。

array(3) { ["menu1"] => array(3) { ["titre"] => string(6) "Title2" ["lien"] => string(0) "" ["order"] => string(1) "2" } ["menu2"] => array(4) { ["titre"] => string(6) "Title3" ["lien"] => string(10) "google.com" ["order"] => string(1) "3" ["child"] => array(3) { [0] => array(3) { [0] => string(9) "SubTitle2" [1] => string(6) "Title2" [2] => string(1) "2" } [1] => array(3) { [0] => string(9) "SubTitle3" [1] => string(6) "Title2" [2] => string(1) "3" } [2] => array(3) { [0] => string(9) "SubTitle1" [1] => string(6) "Title1" [2] => string(1) "1" } } } ["menu3"] => array(3) { ["titre"] => string(6) "Title1" ["lien"] => string(0) "" ["order"] => string(1) "1" } }

php arrays multidimensional-array parent-child merging-data
1个回答
1
投票

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.