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

时间:2011-10-02 22:28:44

标签: php arrays foreach

代码:

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

5 个答案:

答案 0 :(得分:2)

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.
}

答案 1 :(得分:1)

你可以避免调用foreach并只使用第一个元素

$tag1 = $persons[0]["tag"];

或使用current

$tag1 = current($persons);

答案 2 :(得分:1)

我认为澄清没有多大帮助:P无论如何,我建议按ID(或至少按字母顺序)按顺序订购标签。因此,标签的顺序将是相同的,访问数组的第一个元素将始终返回相同的标记。

答案 3 :(得分:0)

如果我理解得很好,你可以使用reset()函数。它接收一个数组作为参数并返回第一个元素。

答案 4 :(得分:0)

foreach($persons as $pid=>$p){
  // is this what you mean..?
  $theTagYouWant = $tags[0];
  $tag1 = $p["tag"];
  $tag1ish = $tags[$p['id']];
}