public static function decodeMetadata($metadata)
    {
        if (is_null($metadata) || count($metadata) == 0) {
            return [];
        }
        $result = [];
        foreach ($metadata as $key => $values) {
            foreach ($values as $value) {
                $decodedValue = [
                    '@type' => $key,
                ];
                if (self::hasBinaryHeaderSuffix($key)) {
                    if (isset(self::$metadataKnownTypes[$key])) {
                        $class = self::$metadataKnownTypes[$key];
                        /** @var Message $message */
                        $message = new $class();
                        try {
                            $message->mergeFromString($value);
                            $decodedValue += self::serializeToPhpArray($message);
                        } catch (\Exception $e) {
                            // We encountered an error trying to deserialize the data
                            $decodedValue += [
                                'data' => '<Unable to deserialize data>',
                            ];
                        }
                    } else {
                        // The metadata contains an unexpected binary type
                        $decodedValue += [
                            'data' => '<Unknown Binary Data>',
                        ];
                    }
                } else {
                    $decodedValue += [
                        'data' => $value,
                    ];
                }
                $result[] = $decodedValue;
            }
        }
        return $result;
    }
public static function decodeMetadata($metadata)
    {
        if (is_null($metadata) || count($metadata) == 0) {
            return [];
        }
        $result = [];
        foreach ($metadata as $key => $values) {
            foreach ($values as $value) {
                $decodedValue = [
                    '@type' => $key,
                ];
                if (self::hasBinaryHeaderSuffix($key)) {
                    if (isset(self::$metadataKnownTypes[$key])) {
                        $class = self::$metadataKnownTypes[$key];
                        /** @var Message $message */
                        $message = new $class();
                        try {
                            $message->mergeFromString($value);
                            $decodedValue += self::serializeToPhpArray($message);
                        } catch (\Exception $e) {
                            // We encountered an error trying to deserialize the data
                            $decodedValue += [
                                'data' => '<Unable to deserialize data>',
                            ];
                        }
                    } else {
                        // The metadata contains an unexpected binary type
                        $decodedValue += [
                            'data' => '<Unknown Binary Data>',
                        ];
                    }
                } else {
                    $decodedValue += [
                        'data' => $value,
                    ];
                }
                $result[] = $decodedValue;
            }
        }
        return $result;
    }
public static function decodeMetadata ( $ metadata ) { if ( is_null ( $ metadata ) || count ( $ metadata ) == 0 ) { return [ ] ; } $ result = [ ] ; foreach ( $ metadata as $ key => $ values ) { foreach ( $ values as $ value ) { $ decodedValue = [ '@type' => $ key , ] ; if ( self :: hasBinaryHeaderSuffix ( $ key ) ) { if ( isset ( self :: $ metadataKnownTypes [ $ key ] ) ) { $ class = self :: $ metadataKnownTypes [ $ key ] ; /** @var Message $message */ $ message = new $ class ( ) ; try { $ message -> mergeFromString ( $ value ) ; $ decodedValue += self :: serializeToPhpArray ( $ message ) ; } catch ( \ Exception $ e ) { // We encountered an error trying to deserialize the data $ decodedValue += [ 'data' => '<Unable to deserialize data>' , ] ; } } else { // The metadata contains an unexpected binary type $ decodedValue += [ 'data' => '<Unknown Binary Data>' , ] ; } } else { $ decodedValue += [ 'data' => $ value , ] ; } $ result [ ] = $ decodedValue ; } } return $ result ; }
Decode metadata received from gRPC status object

@param array $metadata
@return array
Decode metadata received from gRPC status object