как получить начало массива в консоли

131
03 марта 2022, 13:50

Работаю над чужим парсером. Его работу проверяю в консоли. Мне приходит из файла-прайса здоровенный массив. После запуска скрипта парсер начинает формировать этот массив и в консоли это всё отображается. Но... массив большой и его начало образается консолью. Т.е. после формирования этого массива я не могу увидеть его начало, а вижу только хвост. Пробовал ограничиться через foreach, for, но в силу того, что я не знаю структуры этого массива не уверен, что это лучший метод. Я даже не знаю исчерпывающий перечень ключей, которые в нём есть. Как мне увидеть структуру, выкинув аналогичные элементы, чтоб получилось что-то типа

array => [
   'cats' => [
        '0' => [
            'id' => 1,
            'name' => 'Игрушки',
        ],
        1 - 3000 - пропущено
    ],
   'products' => [
        '0' => [
            'id' => 1,
            'name' => 'Мяч',
        ],
        1 - 30000 - пропущено
    ],
   'vendor' => [
        '0' => [
            'id' => 1,
            'name' => 'Бемби',
        ],
        1 - 30 - пропущено
    ],
]

Конечно, можно попытаться вычитать код, но сильно уж много условий, которыми данные мнуться и передаются из методов в метод. Это как крайний вариант.

Answer 1

Если вам надо это временно, что бы отладить скрипт а потом это не надо то предложенный выше вариант самый нормальный, писать в файл и отдельно просматривать хоть в консоли постранично (| more или less) хоть где, только можно что-то более удобное для просмотра использовать а не json например вывод php команды var_export.

Как ещё вариант можно обрабатывать дополнительные параметры которые указывать при вызове консольного скрипта и обрабатывать как угодно выводя что угодно.

Если нужно именно как у вас в примере вывод то можно так:

<?
$array = array(
    'cats' => array(
        array(
            'id' => 1,
            'name' => 'test1'
        ),
        array(
            'id' => 2,
            'name' => 'test2'
        ),
        array(
            'id' => 3,
            'name' => 'test3'
        ),
    ),    
    'cats2' =>array(
        array(
            'id' => 1,
            'name' => 'test4'
        ),
         array(
            'id' => 2,
            'name' => 'test5'
        ),
    ),    
    'cats3' => array(
        array(
            'id' => 1,
            'name' => 'test6'
        ),
         array(
            'id' => 2,
            'name' => 'test7'
        ),
         array(
            'id' => 3,
            'name' => 'test8'
        ),
         array(
            'id' => 4,
            'name' => 'test9'
        ),
    ),    
);
$showInfoArray = array();
foreach ($array as $key => $arValue) {
    $showInfoArray[$key]['allCountElements'] = count($arValue);
    $showInfoArray[$key]['firstElement'] = array_shift($arValue);
}
var_export($showInfoArray);

в консоле вывод будет такой:

array (
  'cats' =>
  array (
    'allCountElements' => 3,
    'firstElement' =>
    array (
      'id' => 1,
      'name' => 'test1',
    ),
  ),
  'cats2' =>
  array (
    'allCountElements' => 2,
    'firstElement' =>
    array (
      'id' => 1,
      'name' => 'test4',
    ),
  ),
  'cats3' =>
  array (
    'allCountElements' => 4,
    'firstElement' =>
    array (
      'id' => 1,
      'name' => 'test6',
    ),
  ),
)
READ ALSO
Как передать Request Headers что бы получить json

Как передать Request Headers что бы получить json

Есть API, которое возвращает информацию в соответствии с передаваемыми заголовками (Reauest Headers)Нужно выполнить запрос:

108
Работая с React-thunk делают обычно отдельную папочку под thunks функции?

Работая с React-thunk делают обычно отдельную папочку под thunks функции?

Работая с React-thunk делают обычно отдельную папочку под thunks функции или в store их пишут?

104
Can&#39;t perform a React state update on an unmounted component

Can't perform a React state update on an unmounted component

Функция делает запрос на авторизацию пользователя и, если нет никакой ошибки, делает роутинг на главную страницуПочему здесь я получаю такую...

155
Как узнать дефолтный скрипт скролла экрана в браузере

Как узнать дефолтный скрипт скролла экрана в браузере

Я отключаю скролл в своей функции и мне необходимо переназначить скролл, но при использовании scrollBy страница дергается

106