1

我有两个逗号分隔的列表,对应于查询返回的东西的 ID 和值。我可以使用explode轻松地将每个转换为数组。

我的问题是如何将这两个列表转换为一组超链接,每个超链接使用一个,如下所示:

Ids:  34,23,78
Values: red, blue, green

Links: <a href='get.php?id=34'>red</a> etc.

我可以用:

$valuesarray =explode(',',$values);
foreach($valuesarray as $val) {
Echo ....$Val
}

但是如何将 ID 放入链接中?

4

6 回答 6

2

就个人而言,我会使用array_combine将它们组合成一个数组:

$arr = array_combine(explode(",",$ids),explode(",",$values));
foreach($arr as $id=>$value) {
    ...
}

但还有其他方法。如:

$idarray = explode(",",$ids); $valuesarray = explode(",",$values);
// option 1:
foreach($idarray as $k=>$id) {
    $value = $valuesarray[$k];
}
// option 2:
$length = count($idarray);
for( $i=0; $i<$l; $i++) {
    $id = $idsarray[$i]; $value = $valuesarray[$i];
}

等等。

于 2012-10-17T18:58:54.847 回答
1

如果您可以假设项目数始终相同,则可以执行常规 for 循环:

for ($i = 0; $i < count($valuesarray); $i++) {
    echo "<a href='get.php?id=" . $idsarray[$i] . "'>" . $valuesarray[$i] . "</a>";
}
于 2012-10-17T18:58:22.643 回答
1

在 for each 循环中使用 $key => $value 将完成此操作。

foreach($valuesarray as $id => $val) {
echo '<a href="file.php?id=' . $id . '">' . $val . '</a>';
}
于 2012-10-17T18:57:51.793 回答
0

您可以将它们映射到一个数组中,其中“id”作为键,“值”作为值,如下所示:

$id_array = explode(',', $ids);
$value_array = explode(',', $values);
$final_array = array();

for ($i=0; $i < count($id_array); $i++) {
    $final_array[$id_array[$i]] = $value_array[$i];
}

请注意,您可能还想在进入循环之前验证 id 的数量是否与值的数量匹配。

于 2012-10-17T18:59:40.540 回答
0
$ids = '33,22,55';
$values = 'red,yellow,blue';

$ids = explode(',', $ids);
$values = explode(',', $values);

foreach($ids as $key => $value){
    echo "<a href='get.php?id=$ids[$key]'>$values[$key]</a><br />";
}
于 2012-10-17T19:00:10.663 回答
0

尝试这个:

$id_arr = explode(',',$ids);
$val_arr = explode(',',$values);
for($i = 0; $i < count($id_arr); $i++)
{
    echo '<a href="get.php?id='.$id_arr[$i].'">'.$val_arr[$i].'</a>';
}
于 2012-10-17T19:02:24.580 回答