массивы — Как мне добавить лимит php и порядок для возвращающихся детей?

Две вещи на самом деле.

  1. Я пытаюсь ограничить возвращаемых детей, в качестве примера 8 статей. Я пробовал array_slice и другие методы, но просто не могу заставить что-либо работать.
  2. Я также хотел бы вернуть этих детей в порядке возрастания, основываясь на моем столбце «updated_date» в моей базе данных.

Очень ценю любое руководство по этому вопросу, усердно работал по ночам, ничего не могу заставить работать 🙁

<?php
// get all pages
$pages = new TFW_Navigation($pageNav);
$pages = $pages->getNavigation();
foreach ($pages as $index => $topPage)
{
$children = $topPage->getChildren(null,true);
if (!empty($children)) {
foreach($children as $child) {
?>

<article class="<?=$child->ext_column_1 ?>">
<a href="<?= $child->url ?>" class='article-border'>
<img src="<?=$child->ext_column_2 ?>" alt="">
<header>
<h3>
<?= $child->ext_column_3 ?>
</h3>
</header>
<footer>
<p>
<?php echo date("d F Y", strtotime($child->last_modified))."<span class='sprite article-link'></span>" ?>
</p>
</footer>
</a>
</article>

<?php
}
}
}
?>

Если нужна дополнительная информация, пожалуйста, дайте мне знать.

Спасибо Барри

0

Решение

Добавить break заявление.

foreach($children as $childIndex => $child) {
if ($childIndex > 8) {
break;
}

...
}
0

Другие решения

  1. Чтобы ограничить ваш массив, использование array_slice является хорошим решением
$firstEight =  array_slice($children, 0, 8); // First 8 items
  1. Чтобы вернуть массив в порядке возрастания на основе вашего столбцаified_date, вы должны сделать это из SQL-запроса.
$sql = "SELECT * FROM table WHERE x = y ORDER BY last_modified ASC";

а также вы можете ограничить результаты из sql.

$sql = "SELECT * FROM table WHERE x = y ORDER BY last_modified ASC LIMIT 0,8";

// С помощью

<?php
// get all pages
$pages = new TFW_Navigation($pageNav);
$pages = $pages->getNavigation();
foreach ($pages as $index => $topPage)
{
$children = $topPage->getChildren(null,true);
$firstEight = array_slice($children, 0, 8);
if (!empty($firstEight)) {
foreach($firstEight as $child) {
?>

<article class="<?=$child->ext_column_1 ?>">
<a href="<?= $child->url ?>" class='article-border'>
<img src="<?=$child->ext_column_2 ?>" alt="">
<header>
<h3>
<?= $child->ext_column_3 ?>
</h3>
</header>
<footer>
<p>
<?php echo date("d F Y", strtotime($child->last_modified))."<span class='sprite article-link'></span>" ?>
</p>
</footer>
</a>
</article>

<?php
}
}
}
?>
0

По вопросам рекламы [email protected]