php - 通过另一个数组对数组进行分组?

标签 php html arrays string

我正在尝试按一个数组对另一个数组进行排序。这两个数组都从表单中获取它们的内容。

这是我的表单代码:

<form method="post" action="">

<div class="groupcontainer">
<br/><label>Group One:</label><br/>
<input type="text" name="groupname[]" value="groupone" /><br/>
<br/><label>Variable Group One:</label><br/>
<input type="text" name="variable[]" value="variableone" />
<input type="text" name="variable[]" value="variabletwo" />
</div>

<br/>

<div class="groupcontainer">
<br/><label>Group Two:</label><br/>
<input type="text" name="groupname[]" value="grouptwo" /><br/>
<br/><label>Variable Group Two:</label><br/>
<input type="text" name="variable[]" value="variablethree" />
<input type="text" name="variable[]" value="variablefour" />
</div>

<br/>
<input type="submit" name="submit" value="Submit" />
</form>

这是 PHP 代码:

<?php

if (!$_POST['submit'] == "") {
    foreach($_POST['groupname'] as $groupname) {
        $groupnum = 1;
        foreach($_POST['variable'] as $variable) {  
            print "$".$groupname.$groupnum." = '".$variable."';<br/>";
            $groupnum++;
        }
        print "$".$groupname." = array(";
        for ($arrnum = 1; $arrnum <= count($_POST['variable']); $arrnum++) {
            print "$".$groupname.$arrnum.", ";
        }
        print ");<br/><br/>";
    }
}

?>

这是我提交表单时得到的结果:

$groupone1 = '$variableone';
$groupone2 = '$variabletwo';
$groupone3 = '$variablethree';
$groupone4 = '$variablefour';
$groupone = array($groupone1, $groupone2, $groupone3, $groupone4, )

$grouptwo1 = '$variableone';
$grouptwo2 = '$variabletwo';
$grouptwo3 = '$variablethree';
$grouptwo4 = '$variablefour';
$grouptwo = array($grouptwo1, $grouptwo2, $grouptwo3, $grouptwo4, )

这是我真正想要的结果:

$groupone1 = '$variableone';
$groupone2 = '$variabletwo';
$groupone = array($groupone1, $groupone2)

$grouptwo1 = '$variablethree';
$grouptwo2 = '$variablefour';
$grouptwo = array($grouptwo1, $grouptwo2)

整个事情需要是动态的,因为我想添加尽可能多的组和变量。

几天来我一直在寻找答案,并且已经问过两个不知道答案的人。也许你们可以帮忙。谢谢!

更新:

只是澄清几点:

  1. 所以基本上我希望能够添加任意数量的输入表单(为此我使用 jQuery)来创建任意数量的组和变量,例如:

    $groupwuteva1 = '你好'; $groupwuteva2 = '再见':

    $randomname1 = '绿色'; $randomname2 = '蓝色'; $randomname3 = '红色';

    $blabla1 = 'abc'; $blabla2 = 'xyz'; $blabla3 = '123'; $blabla4 = 'bla';

  2. 无论我用作组名的是什么,都会在数组一中使用,例如我称一个组为“颜色”,我为该组输入的变量是“蓝色”、“红色”和“绿色”。然后我会得到这段代码:

    $colors1 = '绿色'; $colors2 = '蓝色'; $colors3 = '红色';

我希望这能澄清一些问题。非常感谢到目前为止的所有回复!

最佳答案

您可以将组名作为一个容器,将所有关联的变量值存储在其中。之后,使用 variable variablesimplode()函数来处理您的 html 表单。

HTML

<form method="post" action="">

<div class="groupcontainer">
<br/><label>Groupe One:</label><br/>
<input type="text" name="groupname[]" value="groupone" /><br/>
<br/><label>Variable Group One:</label><br/>
<input type="text" name="groupone[]" value="variableone" />
<input type="text" name="groupone[]" value="variabletwo" />
</div>

<br/>

<div class="groupcontainer">
<br/><label>Groupe Two:</label><br/>
<input type="text" name="groupname[]" value="grouptwo" /><br/>
<br/><label>Variable Group One:</label><br/>
<input type="text" name="grouptwo[]" value="variablethree" />
<input type="text" name="grouptwo[]" value="variablefour" />
</div>

<br/>
<input type="submit" name="submit" value="Submit" />
</form>

PHP

if(isset($_POST['submit'])){
    foreach($_POST['groupname'] as $value){
        $arr = array();
        $i = 1;
        foreach($_POST[$value] as $v){
            $var = $value . $i;
            $$var = $v;
            echo $var . " = " . $$var . "<br />";
            $arr[] = $$var;
            ++$i;
        }

        $output = $value . " = array(" . implode(",", $arr) . ")";
        echo $output . "<br /><br />";
    }
}

输出:

groupone1 = variableone
groupone2 = variabletwo
groupone = array(variableone,variabletwo)

grouptwo1 = variablethree
grouptwo2 = variablefour
grouptwo = array(variablethree,variablefour)

关于php - 通过另一个数组对数组进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36773627/

相关文章:

javascript - 将此 jQuery 的 "onClick"操作从清除输入文本更改为将输入文本添加到下面的列表中?

arrays - Swift 3 中数组的扩展

PHP代码没有被执行,但是代码显示在浏览器源代码中

php - 使用php播放asx或pls格式

javascript - 您可以使用 HTML 和 javascript 创建一个包含可编辑内容的按钮吗?

php - 合并数组中的重复值

java - 二维数组/矩阵的长度

php - Laravel 在自己的项目中使用包

php - 在类里面使用 PDO 与 php 和 mysql

javascript - 向下滚动时隐藏标题,向下滚动时显示