[英]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.