20250629 1.1 Stable

This commit is contained in:
2025-06-29 20:29:52 +03:00
parent 58b3b74d99
commit 52de613b0f
10 changed files with 1365 additions and 118 deletions

View File

@@ -0,0 +1,69 @@
<?php
namespace goodboyalex\php_components_pack\traits\JsonReWriter;
/**
* Часть кода класса JsonReWriter, отвечающая за методы удаления ключей JSON.
*
* @author Александр Бабаев
* @package php_components_pack
* @version 1.0
* @since 1.1.0
*/
trait JsonReWriterDeleteTrait
{
/**
* Очистка данных JSON.
*
* @return void
*/
public function Clear (): void
{
// Очистка данных
unset($this->JsonData);
// Создание пустого массива
$this->JsonData = [];
}
/**
* Удаление ключа JSON.
*
* @param string $key Требуемый ключ JSON для удаления.
*
* @return bool Результат удаления ключа: <code>true</code> - удаление прошло успешно, <code>false</code> -
* произошла ошибка при удалении.
*/
public function DeleteKey (string $key): bool
{
// Очищаем ключ
$preparedKey = $this->PrepareKey($key);
// Проверка ключа
if (!$this->IsKeyExists($preparedKey))
// - ключ не существует
return false;
// Разбиваем ключ на части
$keys = $this->ParseKey($preparedKey);
// Получаем текущий массив данных
$current = &$this->JsonData;
// Если ключ не является корневым
if (count($keys) > 0)
// - переходим к вложенному массиву
for ($i = 0; $i < count($keys) - 1; $i++)
// -- и добавляем массив данных
$current = &$current[$keys[$i]];
// Получаем удаляемый ключ
$deleteKey = $keys[count($keys) - 1];
// Удаляем ключ
unset($current[$deleteKey]);
// Проверяем удаление
return $this->IsKeyExists($key);
}
}