Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Функция count() выдает разные значения


Recommended Posts

Добрый день. Есть массив, размер которого составляет 13542 элемента. Если скрипт запустить в браузере, то в этом случае функция count() возвращает 13542. Если скрипт запустить используя ssh/bash/shell/cron то функция вернет другое число.
Браузер:
var_dump -> int(13542)
shell:
var_dump ->int(17366)

Спойлер

Array
(
    [offer] => Array
        (
            [0] => Array
                (
                    [@attributes] => Array
                        (
                            [id] => 00000009856_1
                            [available] => true
                            [selling_type] => r
                            [group_id] => 29261
                        )
 
                    [vendorCode] => 9856
                    [name] => Кожаный чехол (книжка) Nillkin Sparkle Series для Apple iPhone 6/6s plus (5.5")
                   [url] => https://itsellopt.com.ua/products/kozhanyy-chehol-knizhka-nillkin-sparkle-series-dlya-apple-iphone-6-plus-55/29272
                   [price] => 219
                   [currencyId] => UAH
                   [categoryId] => 11101
                   [category] => Apple iPhone 6/6s plus (5.5")
                    [vendor] => Nillkin
                    [param] => Белый
                    [picture] => Array
                        (
                            [0] => https://itsellopt.com.ua/uploads/YZ/HE/tv/ZZ/IT/5t/6m/Oz/85/Pc/Cc/Uy/7G/wT/Xl/gN.jpg
                            [1] => https://itsellopt.com.ua/uploads/A0/oe/jH/bE/o1/9S/9Y/Cj/gh/iP/Nv/OI/mj/KK/TA/TJ.jpg
                            [2] => https://itsellopt.com.ua/uploads/43/5Q/DC/mH/fu/us/MY/gW/Bk/Ku/oY/LY/Zk/fk/tl/oy.jpg
                        )
 
                    [description] =>
 
 
    Бренд  Nillkin
 
    Форм-фактор  книжка
 
    Материал –синтетическая кожа + поликарбонат
 
    Поверхность  шероховатая
 
 
 
 
 
    ✔️ потрясающая книжка от компании Nillkin;
 
    ✔️ на ощупь шероховатая с эффектом перламутра;
 
    ✔️ нежные цвета;
 
    ✔️ в книжке нет магнита, но благодаря пружинному торцу она легко захлопывается;
 
    ✔️ каркас из поликарбоната;
 
    ✔️ обложка из синтетической кожи;
 
    ✔️ дизайн ультратонкий;
 
    ✔️ есть возможность разговаривать с закрытой обложкой;
 
    ✔️ позволяет хранить небольшие заметки, наличные или банковские карты;
 
    ✔️ не оставляет отпечатков;
 
    ✔️ не скользит в руках;
 
    ✔️ обеспечит гаджету полноценную защиту при падениях и ударах.
 
 
 
                )
 
 
    ===========================================================
 
 
 
 
                [13541] => Array
                (
                    [@attributes] => Array
                        (
                            [id] => 00000042627_6
                            [available] => true
                            [selling_type] => r
                            [group_id] => 208303
                        )
 
                    [vendorCode] => 42627
                    [name] => Чехол Camshield mate TPU со шторкой для камеры для Xiaomi Mi 10T / Mi 10T Pro
                    [url] => https://itsellopt.com.ua/products/cexol-camshield-mate-tpu-so-storkoi-dlya-kamery-dlya-xiaomi-mi-10t-lite-redmi-note-9-pro-5g-1/208309
                    [price] => 169
                    [currencyId] => UAH
                    [categoryId] => 57501
                    [category] => Xiaomi Mi 10T
                    [vendor] => Epik
                    [param] => Черный
                    [picture] => Array
                        (
                            [0] => https://itsellopt.com.ua/uploads/TSlavdpaUPhiAf43DNaJzLxCAKnIhXax.jpg
                            [1] => https://itsellopt.com.ua/uploads/Utp7LOl1EEBTznH9t7HhcyCTVAO4mj2S.jpg
                            [2] => https://itsellopt.com.ua/uploads/m0xZcyZiNE9pkp8biqpJkoDSufMmKz9h.jpg
                            [3] => https://itsellopt.com.ua/uploads/aaj8SH1Mw2BOrnYaIucEVhhwJYwvd9Mm.jpg
                        )
 
                    [description] =>
Чехол Camshield mate TPU со шторкой для камеры для Xiaomi Mi 10T / Mi 10T Pro (Черный)
 
 
                )
 
        )
 
)

 

Есть идеи?

Змінено користувачем mario512
Надіслати
Поділитися на інших сайтах

Ограничение на количество элементов в массиве? max_input_vars

Змінено користувачем ArtemFam
Надіслати
Поділитися на інших сайтах

33 минуты назад, ArtemFam сказал:

Ограничение на количество элементов в массиве? max_input_vars

phpinfo() говорит что 10 000

Надіслати
Поділитися на інших сайтах

а var_dump массива в обоих случаях, что говорит?

Надіслати
Поділитися на інших сайтах

@fanatic

Браузер:
var_dump -> int(13542)
shell:
var_dump ->int(17366)

2 минуты назад, halfhope сказал:

 

Это другое.

 

Сохраните данные массива в файл и сравните. 

Судя по файлу xml, который разбираю, верное значение 13542. Получаю его выполняя скрипт в браузере, или post/get запросом.

Надіслати
Поділитися на інших сайтах

1 hour ago, mario512 said:

phpinfo() говорит что 10 000

имейте ввиду, что php-cli у Вас, вероятнее всего, использует свой\другой файл конфигурации. в консоли выполните php --ini, что бы увидеть. Не говоря уже про то, что версия пхп может быть разной: веб-сервер может использовать одну, а по-умолчанию в системе может использоваться другая.

 

так же, обратите внимание на COUNT_RECURSIVE и функцию array_count_values

  • +1 1
Надіслати
Поділитися на інших сайтах

@nikifalex

Да вроде все норм. Я открывал исходный файл xml. Количество элементов в нем равно значению var_dump -> int(13542)

Получаю объект:

$xml 				= simplexml_load_file($file_xml,'SimpleXMLElement', LIBXML_NOCDATA); 

Далее преобразую объект в массив:

$product_data_arr   = json_decode(json_encode($xml->shop->offers), true);

Сравниваю количество элементов полученного массива и исходного файла xml, все сходится. 

Надіслати
Поділитися на інших сайтах

1 час назад, 100napb сказал:

имейте ввиду, что php-cli у Вас, вероятнее всего, использует свой\другой файл конфигурации. в консоли выполните php --ini, что бы увидеть. Не говоря уже про то, что версия пхп может быть разной: веб-сервер может использовать одну, а по-умолчанию в системе может использоваться другая.

 

так же, обратите внимание на COUNT_RECURSIVE и функцию array_count_values

Версия php 7.2 Изначально в эту сторону копал. По поводу остального буду смотреть. Спасибо за наводку. 

COUNT_RECURSIVE считает вложенные массивы. Это мне не подходит.

Вывод консоли

php --ini 
Configuration File (php.ini) Path: /opt/alt/php72/etc
Loaded Configuration File: /opt/alt/php72/etc/php.ini
Scan for additional .ini files in: /opt/alt/php72/link/conf
Additional .ini files parsed: /opt/alt/php72/link/conf/alt_php.ini

 

Змінено користувачем mario512
Надіслати
Поділитися на інших сайтах

Тема закрыта. Скрипт, в зависимости от того как я его запускал, использовал разные каталоги. Соответственно, я парсил разные файлы. Впредь буду указывать абсолютные пути к файлам))))

@nikifalex   оказался прав. В некоторой степени...

 

Змінено користувачем mario512
  • +1 1
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.