如何显示php数组中的列表项

时间:2015-11-18 02:19:42

标签: php html foreach navigation

我一直在尝试将此显示作为html列表项目,它只是一个字符串,我爆炸然后循环每个项目我不能得到它正确输出。有人可以告诉我哪里出错或建议新的approch。 这是我尝试过的

$path = "1/2/3/4";

$expath =  explode("/",$path);

$ret = '';

echo '<ul>';
foreach ($expath as $pitem) {
echo '<li><a href='.$ret .= $pitem. "/".'>'.$pitem.'</a></li>';
}
echo '</ul>';

希望摆脱hrefs

1
1/2
1/2/3
1/2/3/4

渴望视觉出来的LIs

  • 1
  • 2
  • 3
  • 4

输出我得到警告

  • 1
  • 1
  • 2 /→2
  • 1
  • 2 /&GT; 23/1→3
  • 1
  • 2 /&GT; 23 /&GT; 34 /&GT; 4

4 个答案:

答案 0 :(得分:1)

$path = "1/2/3/4";
$expath = explode("/", $path);

echo '<ul>';
foreach ($expath as $i => $pitem) {
    $slice = array_slice($expath, 0, $i + 1);
    $path = implode('/', $slice);
    echo '<li><a href="' . $path . '">' . $pitem . '</a></li>';
}
echo '</ul>';

答案 1 :(得分:0)

因为你的$ret。把它放在循环内。在您的代码中,您将$pitem$ret连接起来,所有较旧的$ret值也会得到concat。

尝试

<?php

$path = "1/2/3/4";

$expath =  explode("/",$path);


echo '<ul>';
foreach ($expath as $pitem) {
    $ret = '';

    echo '<li><a href='.$ret .= $pitem. "/".'>'.$pitem.'</a></li>';
}
echo '</ul>';

如果您希望在网址中显示=个符号,则只需按照

更改echo即可
 echo "<li><a href='$ret=$pitem/'>$pitem</a></li>";
带有echo的PHP double quotes将打印变量值。

答案 2 :(得分:0)

$list = explode("/", "1/2/3/4");

这将创建一个数组$ list:

echo $list[0]; // 1
echo $list[1]; // 2
echo $list[2]; // 3
echo $list[3]; // 4

答案 3 :(得分:0)

这一行是问题所在:echo '<li><a href='.$ret .= $pitem. "/".'>'.$pitem.'</a></li>';

格式应为:

echo "<li><a href='{$ret}={$pitem}/'>{$pitem}</a></li>";

echo '<li><a href="'.$ret.'='.$pitem.'/">'.$pitem.'</a></li>';