【发布时间】:2015-06-04 07:21:37
【问题描述】:
我正在研究关联数组的树格式:
Array
(
[8] => Array
(
[name] => David Clance
[designation] => Chief Executive Officer
[member] => Array
(
[62] => Array
(
[name] => Sonali Yadav
[designation] => Managing Director
[member] => Array
(
[1147] => Array
(
[name] => Samina Falgun
[designation] => Associate Technical Product Manager
[member] => Array
(
[676] => Array
(
[name] => Rushi Vyas
[designation] => Team Lead
[member] => Array
(
[946] => Array
(
[name] => Vijay Gade
[designation] => Software Engineer
[member] => Array
(
)
)
)
)
[1497] => Array
(
[name] => Pranali Dighe
[designation] => Software Engineer
[member] => Array
(
)
)
)
)
[2882] => Array
(
[name] => Akash Meheta
[designation] => Manager - Administrations
[member] => Array
(
[972] => Array
(
[name] => Rajendra Gore
[designation] => Office Assistant
[member] => Array
(
)
)
)
)
)
)
[189] => Array
(
[name] => Dharmendra Shroff
[designation] => Director Of Engineering
[member] => Array
(
[443] => Array
(
[name] => James Bond
[designation] => Software Development Manager
[member] => Array
(
)
)
)
)
)
)
)
在['member']键的基础上,我试图以父子形式显示树结构,如:
David Clance
Sonali Yadav
Samina Falgun
Rushi Vyas
Vijay Gade
Pranali Dighe
Akash Meheta
Rajendra Gore
Dharmendra Shroff
James Bond
我有如下代码来获取每个数组元素的递增行数和列数到数组中的制表符值:
$this->m_intRowCount = 1;
$intColumnCount = 0;
public function handle() {
if( true == valArr( $this->m_arrmixEmployees ) ) {
$this->getEmployeeDetails( $this->m_arrmixEmployees, $intColumnCount );
}
}
public function getEmployeeDetails( $arrmixEmployees, $intColumnCount ) {
foreach( $arrmixEmployees as $keys => $values ) {
$this->m_intRowCount++;
echo $values['name'] . " " . $values['designation'];
if( true == valArr( $values['member'] ) ) {
echo "<br>";
$intColumnCount++;
foreach( $values['member'] as $key => $value ) {
$this->m_intRowCount++;
echo $value['name'] . " " . $value['designation'];
if( true == valArr( $value['member'] ) ) {
echo "<br>";
$intColumnCount++;
$this->getEmployeeDetails( $value['member'], $intColumnCount );
$intColumnCount--;
} else {
echo "<br>";
}
}
} else {
echo "<br>";
continue;
}
}
}
【问题讨论】:
-
百万美元的问题是?
-
@Epodax:基于 ['member'] 键,尝试像我在问题中显示的那样以父子形式显示树结构。但得到一些无序的序列。你能帮我解决这个递归函数吗?
-
@Epodax:你不能这样做?
-
@Epodax 结果是这样的 :)
-
地址弄错了。想写信给提问者:)
标签: php arrays function recursion tree