1

目前我有这个代码:

<?php
echo '<meta name="robots" content="noindex">';
$arr = json_decode(file_get_contents("http://media1.clubpenguin.com/play/en/web_service/game_configs/    paper_items.json"),true);
foreach($arr as $item) {

$label = $item['label'];
$cost = $item['cost'];
$id = $item['paper_item_id'];
$member = $item['is_member'];

if ($member == "1") {
$member = "Yes";
}else{
$member = "No";
}

echo  "$label = $id = $member = $cost";
echo ",<br>";
}  
?>

这段代码的作用是
在每一行之后添加一个标签。这是它发生的片段:

echo  "$label = $id = $member = $cost";
echo ",<br>";

我想要的是在最后一行echo ",<br>";不运行该行。我该怎么做呢?请帮忙!

4

6 回答 6

9

试试这个:

$result = array();

foreach($arr as $item) {
  ...

  $result[] =  "$label = $id = $member = $cost";
}

echo implode('<br />', $result);

想法是在循环完成工作后将所有行存储在数组中并使用 BR 标签连接项目。

于 2012-06-09T20:41:18.407 回答
1

试试这个:

<?php
$str = '';
$str .= '<meta name="robots" content="noindex">';
$arr = json_decode(file_get_contents("http://media1.clubpenguin.com/play/en/web_service/game_configs/    paper_items.json"),true);
foreach($arr as $item) {

$label = $item['label'];
$cost = $item['cost'];
$id = $item['paper_item_id'];
$member = $item['is_member'];

if ($member == "1") {
$member = "Yes";
}else{
$member = "No";
}

$str .= "$label = $id = $member = $cost";
$str .= ",<br>";
}  

echo substr($str, 0, -5);
?>
于 2012-06-09T20:43:08.723 回答
1

我喜欢ioseb 的爆炸解决方案,但这是另一种简单的方法

foreach($arr as $item) {

    $first = isset($first) && print ",<br>";

    // ...

    echo  "$label = $id = $member = $cost";
}  

这会打印除第一次迭代之外的所有换行符 - 但文本之前,只需确保$first在运行之前未设置。

于 2012-06-09T20:45:24.163 回答
0

我建议将您的所有项目存储在一个字符串中,而不是随时回显。然后你可以在完成后删除任何你想要的尾随字符,然后在最后用一个简单的正则表达式回显一次,比如......

echo preg_replace('/\<br\/\>$/','', $myTotalOutputString);
于 2012-06-09T20:43:50.937 回答
0

对您的代码进行小幅改写:

<?php
echo '<meta name="robots" content="noindex">';
$arr = json_decode(file_get_contents("http://media1.clubpenguin.com/play/en/web_service/game_configs/paper_items.json"), true);
$outArray = array();
foreach($arr as $item) {
    $label = $item['label'];
    $cost = $item['cost'];
    $id = $item['paper_item_id'];
    $member = ($item['is_member'] == '1') ? "Yes" : "No";
    $outArray[] = "{$label} = {$id} = {$member} = {$cost}";
}  

echo implode(',<br>', $outArray);
?>
于 2012-06-09T20:44:51.867 回答
-1

使用 rtrim 快速单行:

echo rtrim('test <br />', '<br />');

但我投票支持上面的内爆答案。

于 2012-06-09T20:48:19.483 回答