Как выбрать первое значение из массива в цикле foreach при передаче переменной на той же странице? - PullRequest
0 голосов
/ 03 октября 2011

код:

$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 ]

2 голосов
/ 03 октября 2011
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 голос
/ 03 октября 2011

Я думаю, что пояснение мало чем помогло: P В любом случае, я бы рекомендовал упорядочить теги по идентификатору (или, по крайней мере, в алфавитном порядке).Таким образом, порядок тегов будет одинаковым, и при доступе к первому элементу массива всегда будет возвращаться один и тот же тег.

1 голос
/ 03 октября 2011

Вы можете избежать вызова foreach и просто использовать первый элемент

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

или использовать current :

$tag1 = current($persons);
0 голосов
/ 03 октября 2011
foreach($persons as $pid=>$p){
  // is this what you mean..?
  $theTagYouWant = $tags[0];
  $tag1 = $p["tag"];
  $tag1ish = $tags[$p['id']];
}
0 голосов
/ 03 октября 2011

если я хорошо понимаю, вы можете использовать функцию reset ().Он получил массив в качестве аргумента и возвращает первый элемент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...