Reference documentation and code samples for the Cloud Spanner Client class ArrayType.
Represents a Spanner SQL Query array type declaration.
Array types may usually be inferred. Types are only required if the array
is nullable, or if it contains structs.
Example:
use Google\Cloud\Spanner\ArrayType;
use Google\Cloud\Spanner\Database;
use Google\Cloud\Spanner\SpannerClient;
$spanner = new SpannerClient();
$database = $spanner->connect('my-instance', 'my-database');
$arrayType = new ArrayType(Database::TYPE_STRING);
$res = $database->execute('SELECT @arrayParam as arrayValue', [
'parameters' => [
'arrayParam' => ['foo', 'bar', null]
],
'types' => [
'arrayParam' => $arrayType
]
])->rows()->current();
$firstValue = $res['arrayValue'][0]; // `foo`
// Arrays may contain structs.
use Google\Cloud\Spanner\ArrayType;
use Google\Cloud\Spanner\Database;
use Google\Cloud\Spanner\StructType;
$arrayType = new ArrayType(
(new StructType)
->add('companyName', Database::TYPE_STRING)
->add('companyId', Database::TYPE_INT64)
);
A value type code or nested struct
definition. Accepted integer and string values are defined as constants on
Database, and are as follows:
Database::TYPE_BOOL, Database::TYPE_INT64,
Database::TYPE_FLOAT64, Database::TYPE_TIMESTAMP,
Database::TYPE_DATE, Database::TYPE_STRING,
Database::TYPE_NUMERIC, Database::TYPE_PG_NUMERICDatabase::TYPE_BYTES, and Database::TYPE_PROTO. Nested arrays
are not supported in Cloud Spanner, and attempts to use
Database::TYPE_ARRAY will result in an exception. If null is given,
Google Cloud PHP will attempt to infer the array type.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[],[],null,["# Cloud Spanner Client - Class ArrayType (1.104.0)\n\nVersion latestkeyboard_arrow_down\n\n- [1.104.0 (latest)](/php/docs/reference/cloud-spanner/latest/ArrayType)\n- [1.103.0](/php/docs/reference/cloud-spanner/1.103.0/ArrayType)\n- [1.102.0](/php/docs/reference/cloud-spanner/1.102.0/ArrayType)\n- [1.101.0](/php/docs/reference/cloud-spanner/1.101.0/ArrayType)\n- [1.100.0](/php/docs/reference/cloud-spanner/1.100.0/ArrayType)\n- [1.98.0](/php/docs/reference/cloud-spanner/1.98.0/ArrayType)\n- [1.97.0](/php/docs/reference/cloud-spanner/1.97.0/ArrayType)\n- [1.96.0](/php/docs/reference/cloud-spanner/1.96.0/ArrayType)\n- [1.95.0](/php/docs/reference/cloud-spanner/1.95.0/ArrayType)\n- [1.94.0](/php/docs/reference/cloud-spanner/1.94.0/ArrayType)\n- [1.93.1](/php/docs/reference/cloud-spanner/1.93.1/ArrayType)\n- [1.92.1](/php/docs/reference/cloud-spanner/1.92.1/ArrayType)\n- [1.91.0](/php/docs/reference/cloud-spanner/1.91.0/ArrayType)\n- [1.90.0](/php/docs/reference/cloud-spanner/1.90.0/ArrayType)\n- [1.89.0](/php/docs/reference/cloud-spanner/1.89.0/ArrayType)\n- [1.88.0](/php/docs/reference/cloud-spanner/1.88.0/ArrayType)\n- [1.87.0](/php/docs/reference/cloud-spanner/1.87.0/ArrayType)\n- [1.86.0](/php/docs/reference/cloud-spanner/1.86.0/ArrayType)\n- [1.85.0](/php/docs/reference/cloud-spanner/1.85.0/ArrayType)\n- [1.84.0](/php/docs/reference/cloud-spanner/1.84.0/ArrayType)\n- [1.83.0](/php/docs/reference/cloud-spanner/1.83.0/ArrayType)\n- [1.82.0](/php/docs/reference/cloud-spanner/1.82.0/ArrayType)\n- [1.81.0](/php/docs/reference/cloud-spanner/1.81.0/ArrayType)\n- [1.80.0](/php/docs/reference/cloud-spanner/1.80.0/ArrayType)\n- [1.79.0](/php/docs/reference/cloud-spanner/1.79.0/ArrayType)\n- [1.78.0](/php/docs/reference/cloud-spanner/1.78.0/ArrayType)\n- [1.77.0](/php/docs/reference/cloud-spanner/1.77.0/ArrayType)\n- [1.76.1](/php/docs/reference/cloud-spanner/1.76.1/ArrayType)\n- [1.68.0](/php/docs/reference/cloud-spanner/1.68.0/ArrayType)\n- [1.67.0](/php/docs/reference/cloud-spanner/1.67.0/ArrayType)\n- [1.66.0](/php/docs/reference/cloud-spanner/1.66.0/ArrayType)\n- [1.65.0](/php/docs/reference/cloud-spanner/1.65.0/ArrayType)\n- [1.64.0](/php/docs/reference/cloud-spanner/1.64.0/ArrayType)\n- [1.63.2](/php/docs/reference/cloud-spanner/1.63.2/ArrayType)\n- [1.62.1](/php/docs/reference/cloud-spanner/1.62.1/ArrayType)\n- [1.61.0](/php/docs/reference/cloud-spanner/1.61.0/ArrayType)\n- [1.60.0](/php/docs/reference/cloud-spanner/1.60.0/ArrayType)\n- [1.59.0](/php/docs/reference/cloud-spanner/1.59.0/ArrayType)\n- [1.58.4](/php/docs/reference/cloud-spanner/1.58.4/ArrayType)\n- [1.57.0](/php/docs/reference/cloud-spanner/1.57.0/ArrayType)\n- [1.56.0](/php/docs/reference/cloud-spanner/1.56.0/ArrayType)\n- [1.55.0](/php/docs/reference/cloud-spanner/1.55.0/ArrayType)\n- [1.54.2](/php/docs/reference/cloud-spanner/1.54.2/ArrayType) \nReference documentation and code samples for the Cloud Spanner Client class ArrayType.\n\nRepresents a Spanner SQL Query array type declaration.\n\nArray types may usually be inferred. Types are only required if the array\nis nullable, or if it contains structs.\n\nExample: \n\n use Google\\Cloud\\Spanner\\ArrayType;\n use Google\\Cloud\\Spanner\\Database;\n use Google\\Cloud\\Spanner\\SpannerClient;\n\n $spanner = new SpannerClient();\n $database = $spanner-\u003econnect('my-instance', 'my-database');\n\n $arrayType = new ArrayType(Database::TYPE_STRING);\n\n $res = $database-\u003eexecute('SELECT @arrayParam as arrayValue', [\n 'parameters' =\u003e [\n 'arrayParam' =\u003e ['foo', 'bar', null]\n ],\n 'types' =\u003e [\n 'arrayParam' =\u003e $arrayType\n ]\n ])-\u003erows()-\u003ecurrent();\n\n $firstValue = $res['arrayValue'][0]; // `foo`\n\n // Arrays may contain structs.\n use Google\\Cloud\\Spanner\\ArrayType;\n use Google\\Cloud\\Spanner\\Database;\n use Google\\Cloud\\Spanner\\StructType;\n\n $arrayType = new ArrayType(\n (new StructType)\n -\u003eadd('companyName', Database::TYPE_STRING)\n -\u003eadd('companyId', Database::TYPE_INT64)\n );\n\nNamespace\n---------\n\nGoogle \\\\ Cloud \\\\ Spanner\n\nMethods\n-------\n\n### __construct\n\n### type\n\nGet the array value type.\n\n### structType\n\nGet the nested struct parameter type."]]