Javascript 数组与 Php 数组

标签 javascript php arrays

我在 php 和 javascript 中有两个版本的相同代码块。它们的输出略有不同。 Javascript 输出中有两个“未定义”元素。我知道 Javascript 数组索引是从 0 开始递增的,并且不允许我们跳过任何索引号。

有没有办法解决这个问题,使 Javascript 数组输出看起来像 Php 数组输出?

PHP代码:

$n = array();
$n[0] = 'Apple';
$n[3] = 'Apple';
echo "<pre>";
print_r( $n );
echo "</pre>";

输出:

Array
(
    [0] => Apple
    [3] => Apple
)

Javascript 代码:

var n = new Array();
n[0] = 'Apple';
n[3] = 'Apple';
n;

输出:

[
    "Apple", 
    undefined, 
    undefined, 
    "Apple"
]

谢谢!!

最佳答案

正如您提到的 JavaScript Arrays有索引限制。

获得所需输出的最接近方法是使用 JavaScript Object .

如果您随后使用 JavaScript JSON stringify要将对象转换为格式良好的文本,您将毫不费力地获得几乎相同的输出。

您可以编写额外的 JavaScript 以使输出完全反射(reflect) PHP 输出。但我会把它留给你。

var n = new Object();
n[0] = 'Apple';
n[3] = 'Apple';

var output = JSON.stringify(n, null, 2);

// Output to a pre tag like the PHP example you gave.
document.getElementById("output").innerHTML = output;

// Simple output to the console.
console.log(output);
<pre id="output"></pre>

关于Javascript 数组与 Php 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32110347/

相关文章:

ruby - 如何在 Ruby 中随机排序(打乱)数组?

javascript - 如何使用 PHP mySQL 和 jQuery 在另一个页面上显示搜索结果?

php - PHP我的管理员突然停止工作

php - 如何测试Behat Context?

PHPUnit 模型问题

javascript - 单击按钮时更改文本的正确函数语法

javascript - 在单独的行 Javascript 上打印数组的每个值

javascript - 对于字符串变量是否等于特殊字符 "&#10004"的条件

javascript - 如何正确应对Chrome X-XSS-Protection?

javascript - 精确匹配字符串