Php:结合Id和值数组

时间:2012-10-17 18:54:47

标签: php arrays

我有两个逗号分隔的列表,对应于查询返回的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进入链接?

6 个答案:

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

等等。

答案 1 :(得分:1)

使用$ key =&gt; for循环中的$ value将实现此目的。

foreach($valuesarray as $id => $val) {
echo '<a href="file.php?id=' . $id . '">' . $val . '</a>';
}

答案 2 :(得分:1)

如果您可以假设项目的数量始终相同,您可以只进行常规循环:

for ($i = 0; $i < count($valuesarray); $i++) {
    echo "<a href='get.php?id=" . $idsarray[$i] . "'>" . $valuesarray[$i] . "</a>";
}

答案 3 :(得分:0)

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

$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的数量是否与值的数量匹配。

答案 4 :(得分: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 />";
}

答案 5 :(得分: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>';
}