【问题标题】:How to remove the last character from last string in a While loop?如何从While循环中的最后一个字符串中删除最后一个字符?
【发布时间】:2022-01-26 08:32:34
【问题描述】:

我正在尝试在 Google Charts 脚本中插入一个 PHP 循环,其中包含来自我的 mysql 数据库的数据。

我的数据库结果如下所示:

$result = $wpdb->get_results(
    "Query"); 

我尝试制作的循环应该是这样的

['$result',  $result],

这就是我目前所想出的

$count = 0;
while ($count < count($result)) {
    echo "['" . $result[$count]->dato . "', " . $result[$count]->vaegt . "].<br>";
    $count++;
    }

它创建了我正在寻找的字符串。问题是我需要从循环中的最后一个字符串中删除逗号。

我尝试过 LTRIM 函数,但它会从循环中的每个字符串中删除它,而不仅仅是最后一个。

解决此问题的最佳解决方案是什么?

【问题讨论】:

  • 使用json_encode,它已经被发明出来了。
  • .&lt;br&gt; 也是错误的(&lt;br&gt; 是一个不属于 JSON 的 HTML 标签,. 也不属于那里)。正如之前的评论所说,使用 json_encode 将数组转换为 JSON。您需要做的就是确保您拥有一个具有所需格式/结构的 PHP 数组并对其进行编码。
  • 但是 json_encode 好像输出格式不对?根据谷歌折线图文档我认为正确的格式应该是['data', data],

标签: javascript php wordpress while-loop


【解决方案1】:

你可以使用json_encode,我想它会给你想要的那种输出。

像这样:

$arr = array();

foreach ( $result as $res ) {

    $dato = $res->dato;
    $vaegt = $res->vaegt;

    $arr[$dato] = $vaegt; 

}

$output = json_encode($arr);

然后将 $output 传递给 JS 并像这样使用它:

var data = new google.visualization.DataTable("your JSON variable");

var options = {
 title:your option,
 legend:your option,
 chartArea:your option
};

var chart = new google.visualization.LineChart(document.getElementById("the ID of the HTML element in which you want to output the result"));

chart.draw(data, options);

【讨论】:

  • 但是 json_encode 好像输出格式不对?根据谷歌折线图文档我认为正确的格式应该是['data', data],
  • 请查看我编辑的答案,如果你明白了,请告诉我。
【解决方案2】:

首先,不要将 count() 用于循环中的固定结果。它可能看起来很方便,但速度较慢,因为它在每次迭代中一遍又一遍地执行操作。首先将计数结果分配给变量。就个人而言,我会在这里使用 for() 循环。

其次,您需要在循环内使用条件。与其尝试删除最后一个逗号,不如检查迭代计数,如果不是最后一个,则添加一个逗号。

$count = count($result);
for($i = 1; $i <= $count; $i++)
{
    echo "....";
    if($i < $count)
    {
        echo ", ";
    }
}

【讨论】:

  • 非常感谢您的回答。 for 循环效果很好。但是 IF 语句似乎不起作用。看起来它仍然与循环中最后一个字符串的逗号相呼应?
  • 抱歉,这只是您可以做的一个原始示例。我更正了答案,现在应该完全按照您的意愿行事。通常最好使用 0 作为起点,因为它更适用于数组。我将其更改为 1 以适合您的场合。或者,您可以从 $count 中减去 1,即。 e. $count = count($result)-1。而
猜你喜欢
  • 2020-03-12
  • 1970-01-01
  • 2018-11-22
  • 2013-02-17
  • 2017-03-24
  • 2017-08-19
相关资源
最近更新 更多