Добрый день, можно ли перебрать такой массив Array( [0] =>stdClassObject ( [category_id] =>1 [category_title] =>Первая категория [category_published] =>1 [post_title] =>Статья первой категории [post_postid] =>28 [post_category_id] =>1 ) [1] =>stdClassObject ( [category_id] =>2 [category_title] =>Вторая категория [category_published] =>1 [post_title] =>Статья второй категории [post_postid] =>25 [post_category_id] =>2 ) [2] =>stdClassObject ( [category_id] =>2 [category_title] =>Вторая категория [category_published] =>1 [post_title] =>Статья второй категории [post_postid] =>29 [post_category_id] =>2 ) ) так что бы на выходе получить в html вот такой результат Первая категория - Статья первой категории Вторая категория - Статья второй категории - Статья второй категории Заранее благодарю!
Можно, конечно. Но лучше сортировку по категории делать еще при запросе к БД. Тогда при выводе достаточно просто отслеживать смену id категории, чтобы выводить подзаголовок Первая категория и т.п.
да вот дело в том что нет доступов к беку, имеют только массив во вьюшке. Понятно что запрос не совсем правильно составлен, но имеем то что имеем. Я был бы очень признателен, если подскажете как перебрать))
Говорю, это не норм. Возможно, можно уточнить запрос к беку. Код бесплатно не пишу, даже элементарный --- Добавлено --- Бек – явно отстой. Есть даже избыточность данных.
PHP: usort($data, fn($a, $b)=>$a->category_id<=>$b->category_id); $category = null; foreach($data as $post) { if ($category !== $post->category_id) { echo $post->category_title . PHP_EOL; $category = $post->category_id; } printf("\t %s \n", $post->post_title); } phpize
А что, где-то не работает "\n"? Давным-давно перестал понимать, зачем там было использовать два символа )
Без PHP_EOL PHP: usort($quizdata, fn($a, $b) => $a->category_id<=>$b->category_id); $category = null; foreach($quizdata as $post) { if ($category !== $post->category_id) { echo '<strong>' . $post->category_title . '</strong><br />'; $category = $post->category_id; } echo $post->post_title . '<br />'; } Slava еще раз спасибо!
@don.bidon, ну просто как-то нелепо показанное смотрится вместе. И PHP_EOL все же может быть не тождественно "\n". Глубже не копал --- Добавлено --- В печатных машинках и древних принтерах это были два разных действия
Константа PHP_EOL актуальна для вывода в файл. Подменяется на признак конца строки, принятый в конкретной операционной системе, в которой выполняется сервер. Для вывода в браузер, эта константа бесполезна (за исключением, пожалуй, форматирования исходника html, что, впрочем, тоже спорно).
@Sail, я в курсе, спасибо. Резанул разный подход в одном выводе. Ожидал либо то, либо то. Understand?
То понятно, просто блокнот в Win 10 корректно отображает файл с LF (и даже UTF-8 без BOM). Если MacOS до сих пор не умеет, ССЗБ.
Спасибо за критику. Это я так на коленке набросал. В реальном случае вообще <br> нужен. Присоединяйтесь к моему Телеграм чату