我有一个相当简单的问题,我希望你可以帮助我:)
我有一个数组:
-transport
--plane
---boeing
---airbus
--car
---audi
---ford
阵列可能有更多不同深度的级别,但我需要从顶层输出每个路径。类似的东西:
transport->plane->boeing
transport->plane->airbus
transport->car->audi
transport->car->ford
任何人都有任何建议如何处理这个问题?
很多问候
安德烈亚斯
答案 0 :(得分:0)
您需要运行递归数组walker。
function walk_array($array) {
foreach ($array as &$item) {
if (is_array($item)) {
walk_array($item);
} else {
echo $item;
}
}
}
walk_array($somearray);
问题是,您需要从自身重用相同的功能。但是你应该发布更多关于你的代码的内容,因为通常你应该更好地控制你的数据结构。
答案 1 :(得分:0)
<?php
function show($arr, $prefix = '')
{
if (!is_array($arr))
{
if ($prefix)
{
echo $prefix . '->'. $arr, "\n";
}
else
{
echo $arr, "\n";
}
}
else
{
foreach ($arr as $key => $val)
{
$pre = $prefix;
if (is_array($val))
{
if ($pre)
{
$pre = $pre . '->' . $key;
}
else
{
$pre = $key;
}
show($val, $pre);
}
else
{
show($val, $pre);
}
}
}
}
$list = array(
'transport' => array(
'plane' => array(
'boeing',
'airbus',
),
'car' => array(
'audi',
'ford'
),
),
);
show($list);
输出:
transport->plane->boeing
transport->plane->airbus
transport->car->audi
transport->car->ford
答案 2 :(得分:0)
答案 3 :(得分:0)
<?php
$arrTrans = array(
'plane' => array('boeing', 'airbus'),
'car' => array('audi', 'ford')
);
$strTree = '';
foreach($arrTrans as $strKey => $arrMode) {
$strTree .= $strKey;
foreach($arrMode as $intKey => $strVal)
$strTree .= ' ' . $strVal;
$strTree .= PHP_EOL;
}
print $strTree;
?>
那应该给出一些想法