VersionPress\Storages\Serialization\IniSerializer::restorePhpSerializedData PHP Method

restorePhpSerializedData() private static method

Example: [ 'some_option' => [ 'option_value' => '<<>> ', 'option_value[0]' = 'some serialized value', 'autoload' => 1, ] ] is converted to [ 'some_option' => [ 'option_value' => 'a:1:{i:0;s:21:"some serialized value";}', 'autoload' => 1, ]
private static restorePhpSerializedData ( $deserialized ) : array
$deserialized
return array
    private static function restorePhpSerializedData($deserialized)
    {
        $keysToRestore = [];
        foreach ($deserialized as $key => $value) {
            if (is_array($value)) {
                $deserialized[$key] = self::restorePhpSerializedData($value);
            } else {
                if (Strings::startsWith($value, SerializedDataToIniConverter::SERIALIZED_MARKER)) {
                    $keysToRestore[] = $key;
                }
            }
        }
        foreach ($keysToRestore as $key) {
            $relatedKeys = array_filter($deserialized, function ($maybeRelatedKey) use($key) {
                return Strings::startsWith($maybeRelatedKey, $key);
            }, ARRAY_FILTER_USE_KEY);
            $keysToUnset = $relatedKeys;
            // unset all related lines except the first one (it will be replaced without changing position in the array)
            unset($keysToUnset[$key]);
            $deserialized = array_diff_key($deserialized, $keysToUnset);
            $deserialized[$key] = SerializedDataToIniConverter::fromIniLines($key, $relatedKeys);
        }
        return $deserialized;
    }