0
$fidimp = implode('"', $fidarr);
$friendsimp = implode('<a href="../profile?id=', $funamearr);
$impglue = '</a><br />' . $fidimp . '>';
echo('<a href="../profile?id=' . $fidimp . '>' . implode('</a><br />', $funamearr));

これは私が取り組んでいるコードです。

$funamearr「Conner」と「Rach667」の 2 つの値があります。

$fidarr「2」と「3」(ユーザーのID)の2つの値もあります

このコードを実行すると、「Conner」のみがリンクされます (ちなみに、これは機能します)。「Rach667」もリンクとして表示されるようにするにはどうすればよいですか?

4

2 に答える 2

3

最初に ID から名前までの連想配列を作成し、次にリンクの配列を作成して内破します。次のようになります。

<?php

$funamearr = array( "Conner", "Rach667" );
$fidarr = array( 2, 3 );

$users = array_combine($fidarr, $funamearr);

foreach($users as $id => $name) {
    $links[] = sprintf('<a href="../profile?id=%s">%s</a>', $id, $name);
}

echo implode('<br/>', $links);
于 2013-06-14T07:35:27.710 に答える
1

この場合、implode を使用することはお勧めしませんが、LokiSinclair がループを使用すると言ったように。

<?php
foreach($funamearr as $key => $value) {
    echo '<a href="../profile?id=' . $fidarr[$key] . '">' . $value . '</a><br/>";
}

$funamearrこの場合は、との配列キーが$fidarr一致していることを前提としています。

コードの外では、2 つのヒントを作成します。

1 有用な変数名を使用します。

$funamearrおそらく配列であるため、arr部分を除いて、私にはあまりわかりません。私はお勧め$usernamesします(複数なので配列;)

2 データをまとめる

いいえ、キーが同じであることを期待する必要があります。しかし、データを同じレベルに保てば、使いやすくなることはありません。

すなわち

array(
    array(
        'id' => 1,
        'name' => 'test',
    ),
    array(
        'id' => 2,
        'name' => 'test_name_2',
    ),
)
于 2013-06-14T07:35:59.253 に答える