簡體   English   中英

向現有數組添加值。

[英]Add value to an existing array.

如何將其添加到現有陣列?

    <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” =>“ num [0]的值”,“ par2” =>“ num [1]的值”。

我想將num []添加到$ data數組的末尾。

你可以使用array_push()

像這樣的東西:

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

您可以簡單地使用$ array ['keyname'] ='something'添加鍵/值。

所以你可以使用

<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];

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']添加$_POST['num'] $data的子數組,或按照您認為合適的方式對其進行處理,例如:

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

然后使用:

$data['num'][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;
    }
}

這只是一個簡單的例子,而不是最優雅的例子。 它不會說明在中間跳過數字,但是您會看到我希望實現的主意。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM