Создание динамического ассоциативного массива в конфигурации - PullRequest
0 голосов
/ 30 сентября 2019

Я получил конфигурацию yml следующим образом:

test_array:
    dynamic_key:
        - 'this_is_value'
        - 'it_is_also_a_value'
    second_dynamic_key:
        - 'yop, value'
        - 'another value'

После настройки я хочу получить такой массив:

$iNeedToGetArrayLikeThis = [
    'dynamic_key' => [
        'this_is_value',
        'it_is_also_a_value'
    ],
    'second_dynamic_key' => [
        'yop, value',
        'another value'
    ]
];

, но я получаю:

$whatIGet = [
    [
        'dynamic_key' => [
            'this_is_value',
            'it_is_also_a_value'
        ],
        'second_dynamic_key' => [
            'yop, value',
            'another value'
        ]
    ],
];

Я пытался использовать ->useAttributeAsKey(), но это тоже не сработало.

Код конфигурации моего кода:

->children()
   ->arrayNode('test_array')
       ->ignoreExtraKeys(true)
          ->arrayPrototype()
             ->prototype('scalar')
             ->end()
           ->end()
       ->end()
   ->end()
->end()

1 Ответ

0 голосов
/ 30 сентября 2019

Вы можете написать это просто:

test_array:
    - dynamic_key: ['this_is_value', 'it_is_also_a_value']
    - second_dynamic_key: ['yop, value', 'another value']

демо

или

test_array:
    - dynamic_key: 
        - 'this_is_value'
        - 'it_is_also_a_value'
    - second_dynamic_key: 
        - 'yop, value'
        - 'another value'

демо

...