Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/modules/catalog/lib/helpers/ |
Upload File : |
<?php namespace Bitrix\Catalog\Helpers; /** * Class Tools * Provides various useful methods for data. * * @package Bitrix\Catalog\Helpers */ class Tools { /** * Check existing keys in array. * * @param array $fields Source array. * @param array $keyList Key list for search. * @param bool $checkNull Checked null values. * @return bool */ public static function checkExistKeys(array $fields, array $keyList, $checkNull = false) { $result = false; if (empty($fields) || empty($keyList)) return $result; $checkNull = ($checkNull === true); if (!$checkNull) $fields = array_filter($fields, '\Bitrix\Catalog\Helpers\Tools::clearNullFields'); foreach ($keyList as &$key) { if (array_key_exists($key, $fields)) { $result = true; break; } } unset($key); return $result; } /** * Return missing key list. * * @param array $fields Source array. * @param array $keyList Key list for search. * @param bool $checkNull Checked null values. * @return array */ public static function getMissingKeys(array $fields, array $keyList, $checkNull = false) { $result = array(); if (empty($keyList)) return $result; if (empty($fields)) return $keyList; $checkNull = ($checkNull === true); if (!$checkNull) $fields = array_filter($fields, '\Bitrix\Catalog\Helpers\Tools::clearNullFields'); foreach ($keyList as &$key) { if (!array_key_exists($key, $fields)) $result[] = $key; } unset($key); return $result; } /** * Return keys status in fields. * * @param array $fields Source array. * @param array $keyList Key list for search. * @param bool $checkNull Checked null values. * @return array|bool */ public static function prepareKeys(array $fields, array $keyList, $checkNull = false) { $result = array( 'EXIST' => array(), 'MISSING' => array() ); if (empty($keyList)) return false; if (empty($fields)) { $result['MISSING'] = $keyList; return $result; } $checkNull = ($checkNull === true); if (!$checkNull) $fields = array_filter($fields, '\Bitrix\Catalog\Helpers\Tools::clearNullFields'); foreach ($keyList as &$key) { if (!array_key_exists($key, $fields)) $result['MISSING'][] = $key; else $result['EXIST'][] = $key; } unset($key); return $result; } /** * Callback for array_filter - clear null fields. * * @param mixed $value Clear value. * @return bool */ public static function clearNullFields($value) { return ($value !== null); } }