doude1917 2016-04-13 08:34
浏览 21

从Checkbox进入索引数组,然后从索引数组进入复杂? 排列

I am a newbie with coding and I have problem in figuring out my current problem.

Let me explain my situation first.

In my website, users agree to register with their Facebook account. With that, I am able to retrieve all the permitted data, save it in my database and display it in my website's user profile page. Here, the user default profile information is based on users' Facebook. In that page, user able to edit any of their Facebook information and save it (save into my database but will not change the their information in Facebook's site). My point here is, I have created the retrieve codes for displaying the saved data from the database and I do not wish to change that.

Right now, lets get into it. I have my textarea and I want user able to list out their listings in that textarea. With each line marked as list. I created an for it, so I use explode. So automatically it is set as index array right? Now, I tried to assign/associate each value with one static key so that it will ease my next step (Retrieving them. Why? I have created the default calling for them in the display page).

So here is my textarea:-

<textarea name="languages" placeholder="Your Language of Expertise... 1 Language per Line">

After user submitted, their input, it will go to my function page:-

$languages = explode("
", $_POST['languages']);

and the array ofcourse will look like this for example:-

Array ( 
[0] => Mandarin Chinese
[1] => English 
[2] => French 
[3] => Hokkien 
[4] => Arab

I tried to make the array looks like this:-

Array ( 
[0] => Array ( [name] => Mandarin Chinese ) 
[1] => Array ( [name] => English ) 
[2] => Array ( [name] => French ) 
[3] => Array ( [name] => Hokkien ) 
[4] => Array ( [name] => Arab ) 

So with that, I can preserve my display callings function which is like this for example:-

$user_lang = Array ( 
[0] => Array ( [name] => Mandarin Chinese )
[1] => Array ( [name] => English )

foreach ($user_lang as $lang){
    echo $lang['name'];

I have tried many method such as using methods such with array_walk, array_merge, array_combine, array_flip, array_fill_keys, array_keys and combination of those. I don't know, maybe for all of those, I used it wrongly. I hope you guys can help me out here. And forgive me for my lack of brain.

  • 写回答

1条回答 默认 最新

  • dosf40815 2016-04-13 08:42

    You can iterate over the languages and transform each of them into associative arrays like this:

    foreach ($languages as &$language) {
        $language = [
            'name' => $language

    The ampersand before $language passes the variable by reference. This means that when you change $language inside the foreach, the original array value is changed instead of just your newly created $language variable.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?



  • ¥15 R语言爬虫的时候元素和园代码不一样怎么解决呀
  • ¥15 VS2022多项目启动有问题
  • ¥15 SQL删除添加数据后序号不连续问题。
  • ¥15 首次运行OmniEvent运行报错
  • ¥15 有没有人知道这个问题怎么解决
  • ¥15 comsol电力电缆载流量仿真
  • ¥15 webSocket可以接TCP socket接口吗
  • ¥60 mpi并行出错,CFD++计算
  • ¥15 c#:vsto,powerpoint的外接程序中换主题颜色
  • ¥15 状态机/汽车转向灯/Sateflow