2016-07-26 140 views
0

我有一个表单,它接受数据并将其写入PHP中的JSON表单。将表单提交到JSON文件时保存数组

我需要提交一个数组作为数字输入,但它不断给我一个字符串。是否可以通过文本输入框将表单提交为数组?

形式例如:

<input type="text" name="arraytobepushed[]" placeholder="EG: 1000,2000,3000" /> 

输出是:

{ 
"obj": [{ 
    "arraytobepushed": ["1000,2000,3000"] 
     }] 
} 
+1

有没有这样的东西在HTML输入数组类型。如果你想要一个由逗号分隔的字符串输入数组,你必须自己分割字符串。 – deceze

+0

简单地说,你不能在'html'输入框中写'array',并认为它将会被视为'php'中的'array'。它将被视为一个字符串。所以把逗号分隔的值,然后在'php'爆炸()'这很容易 –

回答

1

您可以通过使用explode()打开文本到一个数组所以,你会是这样的:

<?PHP 
    $myArray = explode(',', $_POST['arraytobepushed[]']); 
?> 

explode()函数把一切都被第一个参数分开(在这种情况下逗号)你传递和把它放入一个数组中。

因此,如果你输入的是1000, 2000, 3000$myArray会是什么样子:

指数0 = “1000”($myArray[0]

指数1 = “2000”($myArray[1]

指数2 =“ 3000“($myArray[2]

请记住,值仍然是字符串,而不是整数。如果你想使他们的整数,你可以这样做:

$myArray = array_map('intval', explode(',', $_POST['arraytobepushed[]'])); 

这使得所有的元素为整数,像这样:

指数0 = 1000($myArray[0]

指数1 = 2000($myArray[1]

索引2 = 3000($myArray[2]

0

号形式提交的文本。

PHP的特殊情况字段的名称为[]作为要在数组中表示的字段。它没有特殊的情况下将字段视为数字而不是字符串。你需要明确地转换数据。

+0

了解!感谢您清理它! – fupuchu

相关问题