使用PHP将2d数组转换为3d [英] Convert 2d array into 3d with PHP
本文介绍了使用PHP将2d数组转换为3d的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有一些像这样的树的简单二维数组:
There are simple 2d array with some sort of tree like this:
- node1
- node2
- node3
它的结构是:
array( array ( 'id' : 1, 'pid': 0, 'title' : 'node1', 'level' : 1 ), array ( 'id' : 2, 'pid': 1, 'title' : 'node2', 'level' : 2 ), array ( 'id' : 3, 'pid': 2, 'title' : 'node3', 'level' : 3 ), )
是否有PHP解决方案将此数组转换为:
Is there solutions with PHP to convert this array into:
array( array ( 'id' : 1, 'title' : 'node1', 'child' : array ( 'id' : 2, 'title' : 'node2', 'child' : array ( 'id' : 3, 'title' : 'node3', ), ), ) ... )
推荐答案
发现@SO PHP遍历函数可将单个数组转换为嵌套带有孩子的数组-基于父级ID
$inArray = array( array('ID' => '1', 'parentcat_ID' => '0'), array('ID' => '2', 'parentcat_ID' => '0'), array('ID' => '6', 'parentcat_ID' => '1'), array('ID' => '7', 'parentcat_ID' => '1'), array('ID' => '8', 'parentcat_ID' => '6'), array('ID' => '9', 'parentcat_ID' => '1'), array('ID' => '13', 'parentcat_ID' => '7'), array('ID' => '14', 'parentcat_ID' => '8'), ); function makeParentChildRelations(&$inArray, &$outArray, $currentParentId = 0) { if(!is_array($inArray)) { return; } if(!is_array($outArray)) { return; } foreach($inArray as $key => $tuple) { if($tuple['parentcat_ID'] == $currentParentId) { $tuple['children'] = array(); makeParentChildRelations($inArray, $tuple['children'], $tuple['ID']); $outArray[] = $tuple; } } } $outArray = array(); makeParentChildRelations($inArray, $outArray); print_r($outArray);
这篇关于使用PHP将2d数组转换为3d的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
- node2
查看全文