我有一个表单,它接收数据并用PHP写入JSON表单。
我需要提交一个数组作为数字输入,但它一直给我一个字符串。是否可以通过文本输入框将表单作为数组提交?
表单示例:
<input type="text" name="arraytobepushed[]" placeholder="EG: 1000,2000,3000" />
输出为:
{
"obj": [{
"arraytobepushed": ["1000,2000,3000"]
}]
}
您可以使用explode()
将文本转换为数组,因此您会得到这样的东西:
<?PHP
$myArray = explode(',', $_POST['arraytobepushed[]']);
?>
explode()
函数拆分由您传递的第一个参数(在本例中为逗号)分隔的所有内容,并将其放入数组中。
因此,如果您输入的是1000, 2000, 3000
,那么您的$myArray
将看起来像:
index 0="1000"($myArray[0]
)
index 1="2000"($myArray[1]
)
index 2="3000"($myArray[2]
)
请记住,这些值仍然是字符串,而不是整数。如果你想让它们成为整数,你可以这样做:
$myArray = array_map('intval', explode(',', $_POST['arraytobepushed[]']));
这使您的所有元素成为整数,如下所示:
索引0=1000($myArray[0]
)
索引1=2000($myArray[1]
)
索引2=3000($myArray[2]
)
否。表单提交文本。
名称中包含[]
的PHP特殊情况字段作为要在数组中表示的字段。它没有特殊的大小写功能,可以将字段视为数字而不是字符串。您需要显式地转换数据。