在PHP本身中将PHP数组转换为JS数组

时间:2018-09-25 01:16:39

标签: javascript php arrays json

嘿,我被困在一块小东西上。

我确实已经为JS数组准备好了结构,但是我需要将其分配给类似

的变量
var data ={ Php array }

这是我的php数组的结构:https://imgur.com/a/LPbCqEu这只是数组的一部分。

我的代码如下:

$csvfile = 'Property_CSVTruncated.csv';
$handle = fopen($csvfile, 'r');

$jsData = array(
'properties' =>array()
);

$header = NULL;
while (($row = fgetcsv($handle, 1000000, ',')) !== FALSE) {
$i = 0;
if (!$header) {
    $header = $row;
} else {
  $data = array_combine($header, $row);
  $fields = array(
    '_id' => $data['C4021040'],
    'index' => $i,
    'price' => $data['123'],
    'picture' => "https://ihatetomatoes.net/demos/_rw/01-real-estate/tn_property01.jpg",
    'city' => "Calgary",
    'MLS# ' => $data['C4021040'],
    'address' => $data['6 ASPEN RIDGE LN SW'],
    'latitude' => $data['51.045681'],
    'longitude' => $data['-114.191544'],
    'Bed' => $data['123'],
    'Bath' => $data['123'],
    'capSpaces' => $data['T3H 5H9'],
     );
array_push($jsData['properties'], $fields);
}
$i++;
}

fclose($handle);
$str = "const data = ";
print($str);

header('Content-type: application/json');
json_encode($jsData, JSON_NUMERIC_CHECK);

$jsonFile = fopen('csvTojs.js', 'w');
fwrite($jsonFile, json_encode($jsData));
fclose($jsonFile);

所以基本上我需要字符串'var data =',然后打印数组。

是否可以在PHP本身中做到这一点?

谢谢

2 个答案:

答案 0 :(得分:1)

在服务器中,回显json_encode($ phpArray)并退出; 在ajax或init js变量的回调中,使用JSON.parse('jsonString');将json解析为数组;

答案 1 :(得分:1)

使用json_encode()

<script>
  var data = <?php echo json_encode($jsData, JSON_PRETTY_PRINT); ?>
</script>

或者您的情况:

header('Content-Type: application/json');
echo json_encode($jsData);
exit;