<?php
class DataStructure
{
private $data = [];
public function __construct(string $data)
{
foreach (explode('|', $data) as $item_quantity) {
list($quantity, $item) = explode(':', $item_quantity);
$this->data[$item] = (int)$quantity;
}
}
public function getItemQuantity(int $item): ?int
{
return $this->data[$item] ?? null;
}
public function setItemQuantity(int $item, int $quantity)
{
$this->data[$item] = $quantity;
}
public function __toString(): string
{
return implode('|', array_map(function ($item) {
return $this->data[$item] . ':' . $item;
}, array_keys($this->data)));
}
}
$data = new DataStructure('3:1|8:2|5:3|4:4');
$data->setItemQuantity(4, '12');
var_dump($data->getItemQuantity(4));
var_dump($data->getItemQuantity(2));
var_dump($data->getItemQuantity(12));
- Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
- int(12)
int(8)
NULL
preferences:
154.27 ms | 407 KiB | 5 Q