使用implode创建链接只会使一个数组项成为链接?

时间:2013-06-14 07:21:52

标签: php

$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中有2个值:“Conner”和“Rach667”

$fidarr也有2个值:“2”和“3”(用户的ID)

当运行此代码时,它只会使“Conner”成为一个链接(顺便说一句,它可以工作)我怎样才能使“Rach667”显示为链接呢?

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:1)

我不建议在这种情况下使用implode,但正如LokiSinclair所说的那样使用循环。

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

此案例假设$funamearr$fidarr的数组键彼此匹配。

在代码之外,我会提出两个提示。

1使用有用的变量名称。

$funamearr并没有告诉我多少,除了arr部分,因为它可能是一个数组。我建议$usernames(多个数组;)

2将数据保存在一起

不,我们不得不希望钥匙是一样的。但是如果你将数据保持在同一水平,我们将不会更容易使用

array(
    array(
        'id' => 1,
        'name' => 'test',
    ),
    array(
        'id' => 2,
        'name' => 'test_name_2',
    ),
)