在同一页上传递变量时,如何在foreach循环中从数组中选择第一个值


How to select first value from array in a foreach loop when passing variable on same page?

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']];
}