Перейти к содержимому
Русский язык для Invision Community 5

Помогите записать правильно в массив

Здравствуйте. Мне необходимо получить историю изменения группы пользователя в IPS, на сколько я понял, эта информация хранится только в core_member_history.

		$dates = [];
		$date = $old = $new = null;

		foreach( \IPS\Db::i()->select( '*', 'core_member_history', array( 'log_app=? and log_member=? and log_type=?', 'core', 6, 'group' ) ) as $row  )
		{
			$data = json_decode( $row['log_data'], TRUE );

			if ($new == $data['old'] && $date != $finish = $row['log_date']) {
				$dates[] = ['start' => $date, 'finish' => $finish];
			}

			$date = $row['log_date'];
			$old = $data['old'];
			$new = $data['new'];
		}

В моем примере я должен получить вот такой массив в итоге:

Array
(
    [0] => Array
        (
            [start] => 1597760738.50
            [finish] => 1601474591.76
        )

    [1] => Array
        (
            [start] => 1608299241.36
            [finish] => null
        )

)

а получаю вот такой:

Array
(
    [0] => Array
        (
            [start] => 1597760738.50
            [finish] => 1601474591.76
        )

    [1] => Array
        (
            [start] => 1601474591.76
            [finish] => 1608299241.36
        )

)

Т.е 

Изменено пользователем TemKa_SD

Рекомендованные сообщения

Какое-то запудренное условие, хотя задача вроде элементарная

		$dates = [];
		$finish = null;

		foreach( \IPS\Db::i()->select( '*', 'core_member_history', array( 'log_app=? and log_member=? and log_type=?', 'core', 6, 'group' ) ) as $row  )
		{
			$data = json_decode( $row['log_data'], TRUE );

			$dates[] = [
				'start' => $data['log_date'],
				'finish' => $finish
			];

			$finish = $row['log_date'];
		}

 

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.