单词之间的二维数组 PHP 变量

Posted

技术标签:

【中文标题】单词之间的二维数组 PHP 变量【英文标题】:2D array PHP variables in between words 【发布时间】:2015-03-01 05:22:33 【问题描述】:

正如标题所说。我正在尝试将来自$_POST['spell'.$j.'icon'.$i] 的每个值存储在一个二维数组中,我很好奇是否有任何方法可以使这个数组看起来相同,所以$spell[$j]icon[$i]

$spellicon=array();
for($i=1;$i<=$_POST['champ_number']; $i++)
    for($j=1; $j<=$noofspellschamp[$i]; $j++)
        $spellicon[$j][$i]=$_POST['spell'.$j.'icon'.$i];

    

EDIT 上一个站点的代码。数据是嵌套的,所以我需要它在二维数组中。

for($i=1;$i<=$champ_number; $i++)
                    echo $_POST['champno'.$i].'<br/>';
                    //echo '<input type="hidden" value="'.$_POST['champno'.$i].'" name="champno'.$i.'">';
                    $champno[$i] = $_POST['champno'.$i];
                    //echo '<input type="hidden" value="'.$_POST['noofspellschamp'.$i].'" name="noofspellschamp'.$i.'">';
                    $noofspellschamp[$i] = $_POST['noofspellschamp'.$i];
                    for($j=1; $j<=$_POST['noofspellschamp'.$i]; $j++)
                            echo '<select name="spell'.$j.'icon'.$i.'">';
                                echo '<option value="Passive">Passive</option>';
                                echo '<option value="Q" selected>Q</option>';
                                echo '<option value="W">W</option>';
                                echo '<option value="E">E</option>';
                                echo '<option value="R">R</option>';
                            echo '</select>';
                        if($i==1&&$j==1)
                            echo '<input type="text" name="spell'.$j.'title'.$i.'" placeholder="Spell '.$j.' name" required  autofocus><br/>';
                            
                        else
                        echo '<input type="text" name="spell'.$j.'title'.$i.'" placeholder="Spell '.$j.' name" required><br/>';
                        

编辑 2 Print_R($_POST)

Array (
  [formid] => 6
  [champ_number] => 2
  [spell1icon1] => Q
  [spell1title1] => spell1
  [champno1spellno1] => 1
  [description111] => sakdop
  [change111] => buff
  [spell1icon2] => Q
  [spell1title2] => sdkop
  [champno2spellno1] => 1
  [description121] => sadas
  [change121] => buff
  [noofspellschamp] => "1":"1","2":"1"
  [champno] => "1":"Garen","2":"Katarina"
  [patch] => 0.03
 )

【问题讨论】:

您能否发布来自print_r($_POST) 的输出,以便我们更好地了解您正在使用的内容,以及您希望输出数组结构的示例?目前还不清楚。 我已经添加了来自 $POST 的上一个站点的代码 查看$_POST 数组真的会有所帮助,因为您在执行此循环的脚本中收到它。请显示print_r($_POST),这样我们就不必在精神上解析变量并将其替换为原始表单来理解它的作用。 我添加了检查编辑 【参考方案1】:

下面的代码是简化的。检查包含的主题。只需使用

$_POST['spellicon'][$j][$i]

$_POST['spell'][$j]['icon'][$i]

您将拥有与变量相同的命名约定。

考虑到表单构建它会更干净,您可以以良好的方式对数据进行分组。如果您不知道如何通过 POST 发送多维数组,请查看this topic

【讨论】:

【参考方案2】:

php 中没有 $spell[$j]icon[$i] 这样的东西。您使用的方法($spellicon[$j][$i])是标准 PHP 中唯一的一种(我的意思是,没有类)。

但如果你这样做会更好:$spellicon[$i][$j],因为拥有法术的是英雄,而不是相反。

【讨论】:

是的,我想所以我只是想让它在语法方面保持不变

以上是关于单词之间的二维数组 PHP 变量的主要内容,如果未能解决你的问题,请参考以下文章

PHP中怎么从一个二维数组中随机取出一个值?

PHP计算二维数组的每个排列

关于指针与二维数组之间的那些事

如何在二维数组中搜索单词和替换

sort int[][] 二维数组排序

C语言,如何找到二维数组中单词的长度?