2012-10-17 49 views
1

我有两个逗号分隔的列表对应的ID和查询返回的东西的值。我可以很容易地将每个转换为使用爆炸的数组。Php:组合Id和值数组

我的问题是如何在两个列表转换成一组使用一个从每个超链接如下:

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 
} 

但我怎么得到Ids进入链接?

回答

1

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

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

如果使用array_combine使ID阵列键和其他的值,将工作。 – davidethell

1

如果你能承担的项目数是永远不变的你可以做一个普通的for循环:

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

依此类推。

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的数量相匹配的数进入循环之前的值。

+0

array_combine会为你做这个。 – davidethell

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 />"; 
} 
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>'; 
}