Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP从HEREDOC文本创建数组赋值?_Php_Arrays_Eval_Variable Assignment_Heredoc - Fatal编程技术网

如何使用PHP从HEREDOC文本创建数组赋值?

如何使用PHP从HEREDOC文本创建数组赋值?,php,arrays,eval,variable-assignment,heredoc,Php,Arrays,Eval,Variable Assignment,Heredoc,我有一个需要转换为数组赋值的字符串列表 假设我有一组这样的句子: 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( 'ctool

我有一个需要转换为数组赋值的字符串列表

假设我有一组这样的句子:

   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,
);
我需要创建如下的变量赋值:

   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,
);
我的想法是使用一些herdoc语法:

 $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

$str=不确定herdeoc与任何事情有什么关系,以下是我的评论版本:

<?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);

HEREDOC用于整洁。我正在复制和粘贴PHP块中长文本列表中的行,我希望避免任何格式错误。$foo可以是您喜欢的任何字符串结构-相同的结果也就是说,您可以使用herdoc建立
$foo
的值,然后其余的仍然适用。尽管这看起来像是配置文件,但你不解析一个配置文件,比如INI或JSON吗?@Dagon感谢你给出了一个简洁的答案。为
eval
构造一个字符串为我节省了很多不雅的代码,我无法想象
eval()
会出现在哪里