Как я могу создать назначение массива из текста HEREDOC, используя PHP?

У меня есть список строк, которые мне нужно преобразовать в массив

Например, допустим, у меня есть набор строк, как это:

   ctools_export_ui_list_form
masquerade_block_1
switchtheme_switch_form
backup_migrate_ui_manual_backup_load_profile_form
backup_migrate_ui_manual_backup_form

Мне нужно создать переменную присваивания, как это:

$conf['journal_form_ids'] = array(
'ctools_export_ui_list_form' => 0,
'masquerade_block_1' => 0,
'switchtheme_switch_form' => 0,
'backup_migrate_ui_manual_backup_load_profile_form' => 0,
'backup_migrate_ui_manual_backup_form' => 0,
);

Моя идея заключается в использовании некоторого синтаксиса HEREDOC:

 $str = <<<EOD
ctools_export_ui_list_form
masquerade_block_1
switchtheme_switch_form
backup_migrate_ui_manual_backup_load_profile_form
backup_migrate_ui_manual_backup_form
EOD

и использовать его для создания текста назначения переменной и eval это или какой-то другой подходящий метод.

Есть ли встроенные процедуры, чтобы сделать его элегантным?

0

Решение

не уверен, что HEREDOC действительно имеет отношение к чему-либо, вот моя прокомментированная версия:

<?php$foo="ctools_export_ui_list_form
masquerade_block_1
switchtheme_switch_form
backup_migrate_ui_manual_backup_load_profile_form
backup_migrate_ui_manual_backup_form";

//make the array
$x=explode(PHP_EOL,$foo);
//swap the keys and values
$x=array_flip($x);
//set the value of all to 1
$x = array_fill_keys(array_keys($x), 1);
print_r($x);
2

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

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

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