我是编码的新手,我在弄清楚当前的问题时遇到了问题。
让我先解释一下我的情况。
在我的网站中,用户同意使用他们的Facebook帐户注册。有了这个,我可以检索所有允许的数据,将其保存在我的数据库中,并将其显示在我的网站的用户个人资料页面中。这里,用户默认配置文件信息基于用户' Facebook的。在该页面中,用户可以编辑他们的任何Facebook信息并保存(保存到我的数据库中,但不会更改他们在Facebook网站上的信息)。我的观点是,我已经创建了用于显示数据库中保存数据的检索代码,我不想改变它。
现在,让我们进入它。我有我的textarea,我希望用户能够在该textarea中列出他们的列表。每行标记为列表。我为它创建了一个,所以我使用了explode
。那么自动将它设置为索引数组吧?现在,我尝试使用一个静态键分配/关联每个值,以便它可以简化我的下一步(检索它们。为什么?我在显示页面中为它们创建了默认调用)。
所以这是我的textarea: -
<textarea name="languages" placeholder="Your Language of Expertise... 1 Language per Line">
</textarea>
用户提交后,输入后,将进入我的功能页面: -
$languages = explode("\n", $_POST['languages']);
并且数组的行为将如下所示: -
Array (
[0] => Mandarin Chinese
[1] => English
[2] => French
[3] => Hokkien
[4] => Arab
)
我试图让数组看起来像这样: -
Array (
[0] => Array ( [name] => Mandarin Chinese )
[1] => Array ( [name] => English )
[2] => Array ( [name] => French )
[3] => Array ( [name] => Hokkien )
[4] => Array ( [name] => Arab )
)
因此,我可以保留我的显示调用功能,例如: -
$user_lang = Array (
[0] => Array ( [name] => Mandarin Chinese )
[1] => Array ( [name] => English )
)
foreach ($user_lang as $lang){
echo $lang['name'];
}
我尝试了很多方法,例如使用array_walk
,array_merge
,array_combine
,array_flip
,array_fill_keys
,array_keys
和这些组合。我不知道,也许对于所有这些,我错误地使用了它。我希望你们能在这里帮助我。原谅我缺乏大脑。
答案 0 :(得分:2)
您可以迭代语言并将每个语言转换为关联数组,如下所示:
foreach ($languages as &$language) {
$language = [
'name' => $language
];
}
$language
之前的&符号通过引用传递变量。这意味着当您在foreach中更改$language
时,会更改原始数组值,而不仅仅是新创建的$language
变量。