javascript - PHP:关联数组到数值数组

标签 javascript php arrays

我有以下问题:

我有一个包含一些数据的二维数组,第一个索引包含“年份”,第二个索引包含一个包含值的范围。

这是一个如何通过 print_r() 解析常规数据的示例。

Array
(
    [2017] => Array
        (
            [0] => 215
            [1] => 182
            [2] => 149
            [3] => 159
            [4] => 176
            [5] => 151
            [6] => 221
            [7] => 185
            [8] => 178
            [9] => 191
            [10] => 265
            [11] => 304
        )

    [2016] => Array
        (
            [0] => 162
            [1] => 179
            [2] => 162
            [3] => 201
            [4] => 169
            [5] => 148
            [6] => 139
            [7] => 139
            [8] => 149
            [9] => 187
            [10] => 264
            [11] => 229
        )
}

在这种情况下效果很好。我正在使用 PHP 的 json_encode()JSON.parse() 将数组发送到 JavaScript。

但是,有一个特定的案例效果不佳。

[2015] => Array
    (
        [1] => 4
        [6] => 88
        [7] => 119
        [8] => 117
        [9] => 107
        [10] => 151
        [11] => 218
    )

该数组被解释为关联数组,因此 JavaScript 将其解释为 Object 数据类型。我的外部库需要一个数组,因此它会抛出错误并停止 JavaScript 执行。

当我尝试使用此方法用零填充中间缺失的数据时

foreach($eM_value as $key => $value)
{
    for($x = 0;$x <= 11;$x++)
        $eM_value[$key][$x] = ((isset($eM_value[$key][$x])) ? intval($eM_value[$key][$x]) : 0);
}

它仍然被解释为关联数组。

[2015] => Array
    (
        [1] => 4
        [6] => 88
        [7] => 119
        [8] => 117
        [9] => 107
        [10] => 151
        [11] => 218
        [0] => 0
        [2] => 0
        [3] => 0
        [4] => 0
        [5] => 0
    )

如何将此特定条目转换为数字数组?

如果需要更多信息,请发表评论,我会添加。

最佳答案

您可以使用array_fill 准备一个占位符数组,然后使用array_replace 将真实数据放入:

<?php

$input = [
    1 => 10,
    3 => 12,
    5 => 54
];

$output = array_replace(array_fill(0, 12, 0), $input);
print_r($output);

会给你:

Array ( 
   [0] => 0 
   [1] => 10 
   [2] => 0 
   [3] => 12 
   [4] => 0 
   [5] => 54 
   [6] => 0 
   [7] => 0 
   [8] => 0 
   [9] => 0 
   [10] => 0 
   [11] => 0 
)

这样您就可以避免对键进行排序。

关于javascript - PHP:关联数组到数值数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53725766/

相关文章:

javascript - 如何使用 Dojo Store 进行客户端数据缓存?

javascript - 以表格形式返回 HTML 元素

php - Mysql 转储空文件

javascript - 从嵌套数组中获取非空元素的数量

php - MySQL - 比较来自 Ajax 数组的值,如果不在表中则删除它们

arrays - 如何并行运行 API 调用 (Node.js)

javascript - 在条形组件前后添加文本

javascript - 如何动态隐藏外部点击的子元素?

php - 使用预哈希密码批量导入 wordpress 用户

PHP:如何使用带有 HTML 净化器的 nl2br() 来保持换行符?