PHP MultipleIterator не работает

Здравствуйте, у меня проблема с загрузкой нескольких массивов в foreach для отображения данных из multipleIterator. В массивах есть полные данные, но в итераторе в foreach мне ничего не показывает.

$date = array();
$time = array();
$message = array();

это мои массивы, которые заполняются из результата mysql, и это работает в этих массивах, все это данные.

и я сделал это

$iterator = new MultipleIterator();
$iterator->attachIterator(new ArrayIterator($date));
$iterator->attachIterator(new ArrayIterator($time));
$iterator->attachIterator(new ArrayIterator($message));

и мой foreach

 foreach($iterator as $i)
 {
   echo $i[0];
   echo $i[1];
   echo $i[2];
}

но он не показывает мне ничего пустого, пожалуйста, помогите, в чем ошибка?

Но $date, $time и $message - это пустой.

u_mulder 03.08.2018 11:45

@u_mulder прочтите описание НЕ ПУСТО, когда я использую только массивы $ date или другой, он показывает мне полные данные

Peter Grenz 03.08.2018 11:47

нет ничего плохого в этом коде

TsV 03.08.2018 11:48

Вот рабочий пример, которая отлично работает 3v4l.org/nW8hC, поэтому убедитесь, что массивы не пусты. Также var_dump($i), чтобы посмотреть, что это такое.

u_mulder 03.08.2018 11:48

когда я сделал это foreach ($ date as $ s) {echo $ s. «<br>»; } он показывает мне все даты в массиве, правда, я не знаю, в чем проблема, это сводит меня с ума

Peter Grenz 03.08.2018 11:54

Возможно проблема с ключами. Только проверьте, какие ключи есть в $i. Для этого вам нужно сменить foreach на foreach($iterator as $keys => $i) и добавить var_dump($keys);.

Karol Samborski 03.08.2018 12:13

@KarolSamborski спасибо, но он мне тоже ничего не показывает

Peter Grenz 03.08.2018 12:15

Так что, возможно, вам стоит создать MultipleIterator с флагами MultipleIterator::MIT_NEED_ANY|MultipleIterator::MIT_KEYS_NU‌​MERIC. Помогает?

Karol Samborski 03.08.2018 12:20

@KarolSamborski да, я пробовал это, но это не помогает :( :( :(

Peter Grenz 03.08.2018 12:23

Не могли бы вы показать, что на самом деле находится в этих трех массивах?

Karol Samborski 03.08.2018 12:26

@KarolSamborski я делаю foreach с $ date, только он показывает мне 08.2018 08.2018 08.2018 и то же самое со временем 09:30 10:30 11:30 и сообщение также 3 сообщения во всех массивах - это данные из результата mysql, но в итераторе нет ничего

Peter Grenz 03.08.2018 12:29

Взгляните на это. Это работает так, что ваши массивы должны иметь другую структуру. Вставьте сюда вывод var_dump([$date, $time, $message]);

Karol Samborski 03.08.2018 14:00
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
12
80
0

Другие вопросы по теме