2014-04-02 2 views
0

У меня есть следующий тестовый код.PHP-ключ обновления и массив значений APC

Теперь его очень малый массив, но в реальном времени очень большой.

Как я могу обновить только значения из ключа 1 непосредственно в APC FOO?

$test = array(
    array(
     'name' => 'Mike', 
     'lastname' => 'Last', 
    ), 
    array(
     'name' => 'test', 
     'lastname' => 'testlast', 
    ), 
    array(
     'name' => 'anothertest', 
     'lastname' => 'anothertestlast', 
    ), 
); 
apc_store('foo', $test); 
print_r(apc_fetch('foo')); 

ответ

2

Я не думаю, что вы можете изменить переменную непосредственно в кеше. Лучше всего было бы написать функцию, которая получает данные из кеша, изменяет его и сохраняет в кэше. Возможно, что-то вроде:

function apc_update_array($cacheKey, $arrayKey, $array) 
{ 
    $data = apc_fetch($cacheKey); 
    $data[$arrayKey] = $array; 
    apc_store($cacheKey, $data); 
} 

С помощью этой функции вы можете просто запустить следующий код, чтобы сделать это.

apc_update_array(
    'foo', 
    1, 
    array(
     'name' => 'differenttest', 
     'lastname' => 'differenttestlast', 
    ) 
);