0

テキストファイルに出力するカレンダースクリプトがあります。テキストファイルを開いて配列に読み込み、結果を出力しています。テキストファイルには次のものが含まれます。

7/9/2013-7/13/2013
Hot Stuff
By Robert More. Yes, folks, it's all platform shoes, leisure suits..
hotstuff.jpg
1,1,0,
*-*
7/16/2013-7/20/2013
Hot Stuff
By Robert More. Yes, folks, it's all platform shoes, leisure suits.. 
hotstuff.jpg
1,1,0,
*-*

私のPHPコードは次のようになります。

$content = file('DC_PictureCalendar/admin/database/cal2data.txt');
$content_chunked = array_chunk($content, 6);
            if (count($content_chunked > 0))
            {
                echo "<table>";
                for ($i=0;$i<count($content_chunked);$i++)
                {
                    echo "<tr>";
                    echo "<td valign='top'>";
                    echo "<div style='padding-top:6px;'>";
                    echo "<a href='schedule.php'>";
                    echo "<img src='DC_PictureCalendar/admin/database/images/".$content_chunked[$i][3]."' width='80' height='80' border='2'>";
                    echo "</a>";
                    echo "</div>";
                    echo "</td>";
                    echo "<td valign='top'>";
                    echo "<div style='padding-left:5px;'>";
                    echo "<table>";
                    echo "<tr>";
                    echo "<td>";
                    echo "<h2>";
                    echo "<a href='schedule.php'>";
                    echo $content_chunked[$i][1];
                    echo "</a>";
                    echo "</h2>";
                    echo "</td>";
                    echo "</tr>";
                    echo "<tr>";
                    echo "<td>";
                    echo $content_chunked[$i][2];
                    echo "<a class='green' href='schedule.php'>";
                    echo "Read more..";
                    echo "</a>";
                    echo "</td>";
                    echo "</tr>";
                    echo "</table>";
                    echo "</div>";
                    echo "</td>";
                    echo "</tr>";
                }
                echo "</table>";
            }

問題は、$ content_chunked [$ i] [1](この場合はタイトル)に重複するエントリがある場合、2回ではなく1回だけ表示したいということです。これは可能ですか?array_uniqueは機能するかもしれないと思いましたが、役に立たなかったようです。前もって感謝します!

4

2 に答える 2

0

array_unique()は重複せずに配列を返しますが、元の配列は変更しません!

それで:

$a = [1, 1, 2, 3]
array_unique($a) => [1, 2, 3]
$a => [1, 1, 2, 3]

新しい配列は、後でアクセスできるように変数に保存する必要があります。

$a = [1, 1, 2, 3]
$b = array_unique($a)
$b => [1, 2, 3]
于 2013-02-13T00:26:55.077 に答える
0

それはおそらく最も優雅で効率的ではありませんが..これを関連する場所に追加してください:

echo "<table>";
$titles = array();
for ($i=0;$i<count($content_chunked);$i++)
{
      if (in_array($content_chunked[$i][1], $titles)) continue;
      $titles[] = $content_chunked[$i][1]
于 2013-02-13T00:28:06.753 に答える