Как сказать цикл foreach только пройти цикл x раз? - PullRequest
0 голосов
/ 26 февраля 2011

как я могу добиться этого правильно:

$array[]['title'] = $secondarray["title"];
$array[]['content'] = $secondarray["content"];

foreach($array as $arr) {
$output.="<div>".$arr['title']."</div><br/>";
}
unset($arr);

Теперь, например, $array[]['title'] содержит 10 записей и $array[]['content'] также 10. Но цикл foreach даст 20 div в качестве результата, поскольку $array содержит 10 + 10 элементов. Как я могу сказать foreach взять только количество элементов в $array[]['title'] (так как $array[]['content'] - это контент, который принадлежит каждому заголовку)? Так что это означает, что пройти только 10 раз через цикл.

PS: Пожалуйста, не отвечайте, что я должен использовать «для».

Спасибо за вашу помощь, phpheini

Ответы [ 4 ]

4 голосов
/ 26 февраля 2011

Еще один метод - использовать только частичный массив:

foreach (array_slice($array, 0, 10) as $row)
{
    ...
1 голос
/ 26 февраля 2011

Я предлагаю поместить заголовок и контент в один массив, тогда вы можете использовать foreach без подсчета, а заголовок с его содержимым «сгруппирован»:

$array[] = array ( 'title' => $secondarray['title'], 'content' => $secondarray['content'] );

foreach($array as $arr) {
  echo '<h1>',htmlspecialchars($arr['title']),'</h1>';
  echo '<p>',htmlspecialchars($arr['content']),'</p>';
}
1 голос
/ 26 февраля 2011

возможно

$array[] = array(
  'title' => $secondarray["title"],
  'content' => $secondarray["content"],
);

после того, как не будет необходимости ограничивать время цикла

1 голос
/ 26 февраля 2011

Используйте что-то вроде этого, но вы действительно должны использовать LIMIT, если данные поступают из базы данных.

$i = 0;
foreach($array as $arr) {
     $i++;
     $output.="<div>".$arr['title']."</div><br/>";
     if ($i == 10) break;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...