为现有数组添加值。

时间:2014-04-17 13:05:13

标签: php html arrays

如何将其添加到现有阵列?

    <input type="text" name="name" />
    <input type="text" name="contry" />
    <input type='number' name="num[]" value='0' class='qty' />
    <input type='number' name="num[]" value='0' class='qty' />
    <input type='number' name="num[]" value='0' class='qty' />

数组是:

$data = array("name" => $_POST['name], "contry" => $_POST['contry']);

最后我必须是“par1”=&gt; “num [0]的值”,“par2”=&gt; “num [1]的值。”

我想将num []添加到$ data数组的末尾。

4 个答案:

答案 0 :(得分:1)

您可以使用array_push()

类似的东西:

$num=$_POST['num'];
foreach($num as $val)
{
array_push($data, $val)
}
print_r($data);

答案 1 :(得分:1)

您只需使用$ array [&#39; keyname&#39;] =&#39;&#39;添加键/值。

所以你可以使用

<form action="" method="post" > 
    <input type="text" name="name" />
    <input type="text" name="contry" />
    <input type='number' name="num[]" value='0' class='qty' />
    <input type='number' name="num[]" value='0' class='qty' />
    <input type='number' name="num[]" value='0' class='qty' />
    <input type="submit"/>
</form>
<?php

$data = array("name" => $_POST['name'], "contry" => $_POST['contry']);

foreach ($_POST['num'] as $k => $v) {
    $data['par'.($k+1)] = $v;
}
var_dump($data);

在用(Me,Meme,1,2,4)

填充表格后产生
array (size=5)
  'name' => string 'Me' (length=2)
  'contry' => string 'Meme' (length=4)
  'par1' => string '1' (length=1)
  'par2' => string '2' (length=1)
  'par3' => string '4' (length=1)

如果你只有3个数字,那么你就不需要那个通用了,如果你这样做,代码会更具可读性

$data['par1'] = $_POST['num'][0];
$data['par2'] = $_POST['num'][1];
$data['par3'] = $_POST['num'][2];

答案 2 :(得分:0)

HTML中的num条目将成为PHP中自己的数组,因此如果您运行var_dump($_POST['num']),您将获得以下内容:

array(3)
  [0] => 5;
  [1] => 6;
  [2] => 7;

因此,您可以使用以下语句访问它:

echo($_POST['num'][0]); // Would echo 5, assuming the same values as above
echo($_POST['num'][2]); // Echos 7.

因此,您只需将$_POST['num']添加为$data的子数组,或按您认为合适的方式处理它,例如:

$data = array("name" => $_POST['name'], "contry" => $_POST['contry'], "num"=>$_POST['num']);

然后使用:

进行访问
$data['num'][0];

答案 3 :(得分:0)

假设您从$ _POST ['name']和$ _POST ['country']获取数据没有任何问题,那么为什么不使用相同的方法从数字中获取数据?

如果数字的数量是动态的(看起来可能是这样),你可以将代码从'num []'更改为'num0'和'num1'等。然后简单地循环直到你得到所有数字他们的数据。

类似的东西:

<input type="text" name="name" />
<input type="text" name="country" />
<input type='number' name="num0" value='0' class='qty' />
<input type='number' name="num1" value='0' class='qty' />
<input type='number' name="num2" value='0' class='qty' />

然后:

$data = array("name" => $_POST['name'], "contry" => $_POST['country']);
$i = 0;
while($i >=0)
{
    if(isset($_POST['num' . $i])
    {
        $data['par' . $i] = $_POST['num' . $i];//this will add the part you want
        $i++;
    }
    else
    {
        $i = -1;
    }
}

这只是一个简单的例子,而不是最优雅的。它不会考虑在中间跳过数字,但你会看到我希望在哪里实现这个想法。