将将多维阵列变为2D阵列

问题描述 投票:0回答:1
( [id] => 1 [name] => some data. [emoji] => 🐕 [parent_id] => [children] => Array ( [0] => Array ( [id] => 2 [name] => Food [emoji] => 🥩 [parent_id] => 1 [children] => Array ( ) ) [1] => Array ( [id] => 3 [name] => some other data [emoji] => 😌 [parent_id] => 1 [children] => Array ( [0] => Array ( [id] => 4 [name] => Massages [emoji] => 💆 [parent_id] => 3 [children] => Array ( ) ) [1] => Array ( [id] => 5 [name] => Games [emoji] => 🎾 [parent_id] => 3 [children] => Array ( ) ) ) ) ) ) )

预期的结果应为:

0] => Array ( [id] => 1 [name] => Rusty Corp. [emoji] => 🐕 [parent_id] => ) [1] => Array ( [id] => 2 [name] => Food [emoji] => 🥩 [parent_id] => 1 ) [2] => Array ( [id] => 3 [name] => Canine Therapy [emoji] => 😌 [parent_id] => 1 ) [3] => Array ( [id] => 4 [name] => Massages [emoji] => 💆 [parent_id] => 3 ) [4] => Array ( [id] => 5 [name] => Games [emoji] => 🎾 [parent_id] => 3 )
i尝试了不同的方法,例如Array_Merge或自定义扁平功能,但无法确定预期结果,任何建议?

Edit:

这是我的扁平功能:

private function flatten_array( array $array ) { $return = array(); array_walk_recursive( $array, function( $a ) use ( &$return ) { $return[] = $a; } ); return $return; }

HERRE是一个会使数组变平的递归函数,它不会考虑根元素上的null值。而且,扁平的数组将从数组和根部元素开始时最嵌套的元素开始。
parent_id
php arrays recursion parent-child flatten
1个回答
1
投票

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