5

配列値の逆シリアル化と更新、およびそれらの再シリアル化(phpを使用)についてサポートが必要です。基本的に、文字列のシリアル化を解除し、特定のキーの値を(他の値を失うことなく)更新して、再シリアル化できるようにしたいと考えています。私は検索しましたが、実行可能な解決策を見つけることができないようです(または多分私はただのタイプです)。

更新しようとしている配列は非常に単純です。それには鍵と価値があります。

array (
    'key' => 'value',
    'key2' => 'value2',
)

私は現在持っていますが、動作しません。

foreach(unserialize($serializedData) as $key => $val)
{
    if($key == 'key')
    {
        $serializedData[$key] = 'newValue';
    }
}

$updated_status = serialize($serializedData);
4

2 に答える 2

8

ここで行おうとしているように、シリアル化されたデータ文字列に直接書き込むことはできません。

$serializedData[$key] = 'newValue';

データをアレイに逆シリアル化し、アレイを更新してから、再度シリアル化する必要があります。キーが存在する場合にのみ値を更新したいように見えるので、次のように行うことができます。

$data = unserialize($serializedData);
if(array_key_exists('key', $data)) {
    $data['key'] = 'New Value';
}
$serializedData = serialize($data);
于 2013-01-21T19:55:05.830 に答える
6

正確には、あなたがそれをどのように説明したか:シリアル化解除、更新、シリアル化。

$data = unserialize($serializedData);
$data['key'] = 'newValue';
$updated_status = serialize($data);
于 2013-01-21T19:45:43.617 に答える