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

エコーするのではなく、すべてのアイテムを文字列に格納することをお勧めします。次に、終了時に必要な末尾の文字を削除してから、最後に 1 回だけ、次のような単純な正規表現を使用してエコーすることができます...

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 に答える