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