code:
$persons = array();
$tags = array();
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
if(!isset($persons[$row["id"]])) {
$persons[$row["id"]]= $row;
$tags[ $row['id'] ] = array();
}
$tags[ $row['id'] ][] = $row['tag'];
}
foreach($persons as $pid=>$p){
$tag1 = $p["tag"];
$tag1ish = $tags[$p['id']];
}
foreach($persons as $pid=>$p){
$tag1 = $p["tag"];
$tag1ish = $tags[$p['id']];
/* to get the first tag, there are many options e.g.: */
$first_tag = $tag1ish[0]; // given u use [] syntax as above.
}
我认为澄清没有多大帮助:p无论如何,我建议按ID排序标签然后(或至少按字母顺序)。因此,标签的顺序将是相同的,访问数组的第一个元素将始终返回相同的标签。
可以避免调用foreach,只使用第一个元素
$tag1 = $persons[0]["tag"];
或使用current:
$tag1 = current($persons);
如果我理解得好,您可以使用reset()函数。它接收一个数组作为参数并返回第一个元素。
foreach($persons as $pid=>$p){
// is this what you mean..?
$theTagYouWant = $tags[0];
$tag1 = $p["tag"];
$tag1ish = $tags[$p['id']];
}