注意:数组到字符串转换

时间:2011-08-30 14:09:35

标签: php jquery ajax post

通过php将ajax发布到csv文件时出错。

<?php
$list = array ($_POST["array"]);
$fp = fopen('array.csv', 'w');
fputcsv($fp, $list);
fclose($fp);
?>

我正在尝试发布我的数组

["0", "0", "0", "0", "0", "0", "0", "0", 99]

回应:


注意 C:\ xampp \ htdocs \ snx \ assets \ www \ write.php 中的数组到字符串转换 4

我的Ajax帖子;

/* Array */
var defaultArray = new Array();
var localArray = new Array();
var serverArray = new Array();

/* Default Values */
defaultArray[0] = "0";
defaultArray[1] = "0";
defaultArray[2] = "0";
defaultArray[3] = "0";
defaultArray[4] = "0";
defaultArray[5] = "0";
defaultArray[6] = "0";
defaultArray[7] = "0";
defaultArray.push(99);

/* Write Array [1st Load] */
$.post("write.php", { 'array': defaultArray });

1 个答案:

答案 0 :(得分:8)

$list = array ($_POST["array"]);

如果$_POST['array']已经是一个数组,Array($_POST['array'])会生成一个[1]字符串数组。

如果你写print_r($list),你会看到类似的东西:

Array(0 =>
 Array(
   0 => "0",
   1 => "0",
   2 => "0",
   3 => "0",
   4 => "0",
   5 => "0",
   6 => "0",
   7 => "0",
   8 => 99
 )
)

要使用原始字符串数组,您可能只需要:

$list = $_POST["array"];

现在,当你写print_r($list)时,你会看到预期的:

Array(
   0 => "0",
   1 => "0",
   2 => "0",
   3 => "0",
   4 => "0",
   5 => "0",
   6 => "0",
   7 => "0",
   8 => 99
)

顺便说一下,使用 .push将项目添加到Javascript数组中,您应该将其实例化为= [],而不是= new Array()

相关问题