gpt4 book ai didi

JavaScript 数组格式问题

转载 作者:行者123 更新时间:2023-12-02 20:31:10 25 4
gpt4 key购买 nike

有人可以帮助我正确格式化这个 JavaScript 数组吗?我显然错过了一些基本的东西:

Javascript:

<script type="text/javascript">

var widths = new Array("225","320","480", "--");
var sidewalls = new Array();
sidewalls["225"] = new Array("65","55","45","40", "--");
var rims["225"] = new Array();
rims["225"]["65"] = new Array("R17", "--");
rims["225"]["55"] = new Array("R17","R18", "--");
rims["225"]["45"] = new Array("R17", "--");
rims["225"]["40"] = new Array("R18", "--");
sidewalls["320"] = new Array("70", "--");
var rims["320"] = new Array();
rims["320"]["70"] = new Array("R20","R24", "--");
sidewalls["480"] = new Array("65", "--");
var rims["480"] = new Array();
rims["480"]["65"] = new Array("R28", "--");

</script>

用于生成上述 JavaScript 的 PHP:

<?php   while($row = mysql_fetch_array($result)) {
list($width, $sidewall, $rim) = explode("/",$row['meta_value']); $menu[$width][$sidewall][$rim] = 1; }

$widths = implode('","', array_keys($menu));
print "var widths = new Array(\"$widths\", \"--\");\n";
print "\nvar sidewalls = new Array();\n";

foreach($menu as $width => $sidewall_array) {
$sidewalls = implode('","', array_keys($sidewall_array));
print "sidewalls[\"$width\"] = new Array(\"$sidewalls\", \"--\");";
print "\nvar rims[\"$width\"] = new Array();\n";

foreach($sidewall_array as $sidewall => $rim_array) {
$rims = implode('","', array_keys($rim_array));
print "rims[\"$width\"][\"$sidewall\"] = new Array(\"$rims\", \"--\");";

}
} ?>

预先感谢您的帮助

斯图

最佳答案

您不应该将 var 放在数组赋值前面,而应将初始定义放在前面。

所以 var widths = ... 没问题,但是 var rims["225"] = ... 不正确,应该是 rims[ “225”] = ...

改变你的PHP;在输出该文本的代码行中删除“var”。更改此:

print "\nvar rims[\"$width\"] = new Array();\n";

对此:

print "\nrims[\"$width\"] = new Array();\n";

这将解决你的问题。但实际上,这个整体解决方案并不是最好的。您应该考虑查看 json-encode php方法。

您可以采用完全结构化的 php 数据结构,并使用此命令将其转换为可由 javascript 读取的内容。尝试用下面的内容替换你的 php 并看看会发生什么(请注意,这是未经测试的,但这是基本思想):

<?php
while($row = mysql_fetch_array($result)) { list($width, $sidewall, $rim) = explode("/",$row['meta_value']); $menu[$width][$sidewall][$rim] = 1; }

print "var widths = " . json_encode(array_keys($menu)) . ";\n";
print "var sidewalls = " . json_encode($menu) . ";\n";
?>

关于JavaScript 数组格式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4107967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com