0

配列を反復処理し、結果から文字列を作成する次のコードがあります。

$finalstring;
$tempstring;

foreach($arr as $key => $value)
{
     $i = 0;
    foreach($value as $key1 => $value1)
    {
        $i+= 1;

        if($i == 1)
        {           

            $tempstring . $value1 . "|";

        }
        if($i == 2)
        {   

            $tempstring . $value1 . "|||||";

        }
        if($i == 3)
        {   

            $tempstring  . $value1 . "||||||||||";

        }
        if($i == 4)
        {    

            $tempstring  . $value1 . "|||||||||||||||||\n";

        }

    }

            echo $tempstring;
            $finalstring . $tempstring;

}
            echo $finalstring;

ただし、コードは文字列を構築していないようです (配列は間違いなく空ではなく、そのようにフォーマットされています-

Array
(
    [0] => Array
        (
            [Name] => Ron
            [Date] => 9/23/10
            [Title] => Boss
            [Activity] => Soccer
        )

    [1] => Array
        (
            [Name] => Tim
            [Date] => 9/23/10
            [Title] => player
            [Activity] => Soccer
        )

    [2] => Array
        (
            [Name] => Jim
            [Date] => 9/23/10
            [Title] => manager
            [Activity] => Soccer
        )

    [3] => Array
        (
            [Name] => Lud
            [Date] => 9/23/10
            [Title] => employee
            [Activity] => Soccer
        )

    [4] => Array
        (
            [Name] => Ron
            [Date] => 9/23/10
            [Title] => sub boss
            [Activity] => Soccer
        )

    [5] => Array
        (
            [Name] => Lev
            [Date] => 9/23/10
            [Title] => mini boss
            [Activity] => Soccer
        )

    [6] => Array
        (
            [Name] => Timpthy
            [Date] => 9/23/10
            [Title] => super boss
            [Activity] => Soccer
        )

    [7] => Array
        (
            [Name] => Jimbo
            [Date] => 9/23/10
            [Title] => final battle
            [Activity] => Soccer
        )

    [8] => Array
        (
            [Name] => El
            [Date] => 9/23/10
            [Title] => link
            [Activity] => Soccer
        )

)

コードが両方のビルドに失敗する理由はありますか$tempstring($finalstringこれは、echo ステートメントが値を出力していないことを意味します)?

4

3 に答える 3

5

次のようにビルドする必要があります。

$tempstring .= $value1 . "|";
于 2013-10-21T13:48:34.183 に答える
2

なぜこれを行っているのかわかりませんが、エラーは、連結された値の割り当てに失敗していることです。そのままでは、たとえ計算されたとしても、連結結果はどこにも行きません(インタープリターには評価を完全に無視する最適化が組み込まれていると思われるため、評価さえされているかどうかはわかりません)

それ以外の:

$tempstring . $value1 . "|";

あなたは書くべきです:

$tempstring .= $value1 . "|";

または手書きで:

$tempstring = $tempstring . $value1 . "|";
于 2013-10-21T13:52:19.310 に答える
1

$finalstringand$tempstringを空の文字列として初期化しました。そして、値を変数に保存するたびに、これを使用しますたとえば

$tempstring .= $value1 . "|";

=値がマージできるように配置することを忘れないでください

于 2013-10-21T13:51:58.060 に答える