0 Пользователей и 1 Гость просматривают эту тему.
  • 4 Ответов
  • 325 Просмотров
*

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
Друзья, ситуация такая, доступа к бэку нет, переписать запрос в базу не могу, есть доступ только к фронту где получаю вот такой массив
Array(
[00] =>stdClassObject // два нуля потому что символ какой то вставляется, читать как 0
(
[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 получить вот такое?
Первая категория
- Статья первой категории
Вторая категория
- Статья второй категории
- Статья второй категории

Заранее благодарю!
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
*

ProtectYourSite

  • Живу я здесь
  • 2356
  • 135 / 4
  • Безопасность вебсайтов
Re: Жутко туплю с перебором массива
« Ответ #1 : 09.10.2022, 14:48:42 »
Что-то типо такого:

Код
        $posts = array();
        foreach ($array as $item){
            $posts[$item->category_title][] = $item;
        }

        foreach ($posts as $categoryName => $category){
            echo $category;
            foreach ($category as $post){
                echo $post->post_title;
            }
        }
*

sivers

  • Живу я здесь
  • 2464
  • 335 / 0
Re: Жутко туплю с перебором массива
« Ответ #2 : 09.10.2022, 20:44:16 »
Если массив по категориям отсортирован, то можно и в 1 цикл вывести.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
*

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
Re: Жутко туплю с перебором массива
« Ответ #3 : 10.10.2022, 19:15:15 »
Что-то типо такого:

Код
        $posts = array();
        foreach ($array as $item){
            $posts[$item->category_title][] = $item;
        }

        foreach ($posts as $categoryName => $category){
            echo $category;
            foreach ($category as $post){
                echo $post->post_title;
            }
        }

Супер, спасибо! Только во втором цикле надо вот так
Код
echo $category[0]['category_title']
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
*

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
Re: Жутко туплю с перебором массива
« Ответ #4 : 10.10.2022, 19:19:12 »
Если массив по категориям отсортирован, то можно и в 1 цикл вывести.

На php-форуме подсказали вот такое решение, если я вас правильно понял про сортировку
Код
usort($data, fn($a, $b) => $a['category_id']<=>$b['category_id']);
        $category = null;
        foreach($data as $post) {
            if ($category !== $post['category_id']) {
                echo '<strong>' . $post['category_title'] . '</strong><br />';
                $category = $post['category_id'];
            }
            echo '<a href="/'.$post['quiz_title'].'/'.$post['quiz_postid'].'">' . $post['quiz_title'] . '</a><br />';
        }
(на переменные не смотрите, я на рабочие заменил, в исходном массиве данные для примера)
но его сложнее в верстке использовать, а решение уважаемого ProtectYourSite идеально подходит
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Рейтинг(место на конкурсе) из массива (как?)

Автор Шмайсер

Ответов: 1
Просмотров: 110
Последний ответ 12.06.2023, 17:02:37
от sivers
Сортировка элементов массива по алфавиту JS JQ

Автор alex_next

Ответов: 9
Просмотров: 2787
Последний ответ 23.07.2015, 10:59:23
от alex_next
Выборка данных с использование массива в качестве условия

Автор AlekVolsk

Ответов: 2
Просмотров: 930
Последний ответ 10.01.2015, 00:27:06
от AlekVolsk