2016-07-26 50 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