Создать ассоциативный массив с помощью Foreach, вставить в существующий ассоциативный массив

Привет.

В настоящее время у меня проблема с AWS Route-53 API. Для создания записи вам нужно вызвать функцию, которая сама нуждается в массиве входных данных.

Я хочу создать набор записей здесь, и для этого у меня есть некоторые значения POST. Один из них, $_POST['record_value'], является текстовой и имеет несколько строк. Я перебираю их. Это позволяет включить несколько значений для одной записи. Код выглядит следующим образом, когда вы жестко закодируете его как одно значение в ResourceRecords;

$result = $this->route53->changeResourceRecordSets([
'ChangeBatch' => [
'Changes' => [
[
'Action' => 'CREATE',
'ResourceRecordSet' => [
'Name' => $recordName,
'ResourceRecords' => [
[
'Value' => $recordValue
],
],
'TTL' => $recordTtl,
'Type' => $recordType,
],
],
],
'Comment' => 'Routing Record Set',
],
'HostedZoneId' => $this->zone,
]);

Хауэр. я хочу сделать ResourceRecords динамически. Для каждой строки в текстовой области мне нужен новый набор следующей части кода;

  [
'Value' => $recordValue
],

Я думал следующее.

 $newData = [];
foreach(explode("\r\n", $recordValue) as $valLine) {
$newData[] = ["Value" => $valLine];
}

$result = $this->route53->changeResourceRecordSets([
'ChangeBatch' => [
'Changes' => [
[
'Action' => 'CREATE',
'ResourceRecordSet' => [
'Name' => $recordName,
'ResourceRecords' => [
$newData
],
'TTL' => $recordTtl,
'Type' => $recordType,
],
],
],
'Comment' => 'Routing Record Set',
],
'HostedZoneId' => $this->zone,
]);

Однако, это, кажется, возвращает исключение: Found 1 error while validating the input provided for the ChangeResourceRecordSets operation:↵[ChangeBatch][Changes][0][ResourceRecordSet][ResourceRecords][0] must be an associative array. Found array(1).

Я неправильно строю массив или я делаю это неправильно вообще?

1

Решение

$newData это уже массив, вам не нужно оборачивать его в другой массив.

'ResourceRecords' => $newData,
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]