首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP分解函数查找最后一个子项

PHP分解函数查找最后一个子项
EN

Stack Overflow用户
提问于 2016-07-07 15:52:43
回答 5查看 127关注 0票数 0

我有一个php插件,可以将一行分解成几行。

代码语言:javascript
运行
复制
$graph_lines = explode( ";", $content );
$output= '';
$output .= '<ul class="lpd-bullet-list';
if($image){
    $output .= ' lpd-bl-custom-icon';    
}
if($style){
    $output .= ' '.esc_attr($style);    
}
$output .= '">';

foreach ($graph_lines as $line) {
    if($line){

        $output .= '<li>';
        $output .= $image;
        $output .= $line;
        $output .= ';';
        $output .= '</li>';

    }
}

$output .= '</ul>';
echo $output;

在每一行的末尾都设置了;,这是可以的,但是如何为最后一个元素设置.呢?有可能吗?

我需要使用end()函数还是其他函数?

请帮帮我!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-07-07 15:59:40

您可以获取sizeof($graph_lines)的行数,并在foreach中创建一个计数器。

例如:

代码语言:javascript
运行
复制
   $numberofline = sizeof($graph_lines);
    $i=0;
    foreach ($graph_lines as $line) {
        if($line){
            $i++;
            $endofline=";";
            if($i==$numberofline)
            {
                $endofline=".";
            }
            $output .= '<li>';
            $output .= $image;
            $output .= $line;
            $output .= $endofline;
            $output .= '</li>';

        }
    }
票数 1
EN

Stack Overflow用户

发布于 2016-07-07 15:57:12

我对你的输出不是很确定,但是你可以像这样使用end function:

代码语言:javascript
运行
复制
$last_index = end(array_keys($graph_lines));
foreach ($graph_lines as $index => $line) {
    if ($index == $last_index) {
        // last index
    } else {
        // perform other tasks
    }
}

或者,您可以像这样使用:

代码语言:javascript
运行
复制
foreach ($graph_lines as $line) {
    if($line){

        $output .= '<li>';
        $output .= $image;
        $output .= $line;
        $output .= ';';
        if (next($graph_lines)==false) $output .= '.';//not sure where you put it.
        $output .= '</li>';

    }
}
票数 2
EN

Stack Overflow用户

发布于 2016-07-07 15:58:33

计算数组。用$i检查一下。

代码语言:javascript
运行
复制
$count = count($graph_lines);
$i = 0;
foreach ($graph_lines as $line) {
    if ($line) {
        if ($i == $count) {
            $output .= '<li>';
            $output .= $image;
            $output .= $line;
            $output .= '.';
            $output .= '</li>';
        } else {
            $output .= '<li>';
            $output .= $image;
            $output .= $line;
            $output .= ';';
            $output .= '</li>';
        }
    }
  $i++;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38240220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档