%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/catalog/lib/helpers/ |
| Current File : /home/bitrix/www/bitrix/modules/catalog/lib/helpers/tools.php |
<?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);
}
}