PHP Array_merge不添加逗号

我正在使用 plotly 构建指标图.js我正在构建分组条形图。

http://img.mukewang.com/62fef0c10001accc05870298.jpg

不同组中的每个条形表示不同年份的数据。并非所有组都有每年的数据,因此我需要为每个组设置不同的结构。对于这个特定的问题,我需要一个数据数组看起来像这样

[633, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0].

我有两个单独的sql查询拉动633和113。然后,我通过执行此操作创建两个不同的数组

$array1 = array($value1, array_fill(1, 2, 0)); 
$array2 = array($value2, array_fill(4, 9, 0));

然后,我将这两个数组合并在一起,以创建一个数组,我的数据可以发送到图形。

$finalArray = array_merge($array1, $array2);

这将产生以下结果:

http://img3.mukewang.com/62fef0d00001484c02260274.jpg

就数据和顺序而言,这看起来是正确的。但是,我不确定为什么我来自数据库的值没有与该值一起使用的键,而更大的问题是数组合并的地方缺少逗号,因此值113在我的图表中的错误条形组中显示。

由于 plotly 是一个 javascript 库,因此我将发布将数据发送到 javascript 文件时获得的结果。我正在通过将数组变量从PHP函数中返回,然后在我的javascript文件中调用该变量来将PHP数据发送到javascript。

var finalArray = <? echo json_encode($courseData, JSON_PRETTY_PRINT) ?>;

所以我希望我能了解为什么逗号丢失和/或我做错了什么。


守着星空守着你
浏览 86回答 3
3回答

至尊宝的传说

这将构建一个数组,其中第一个元素是单个值,第二个元素是另一个数组:array($value1, array_fill(1, 2, 0))也就是说,你得到这个:[633, [0, 0]]如果需要此输出:[633, 0, 0, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0]然后,您需要使用一堆单个值构建数组。您可以通过将多个数组发送到array_merge())来执行此操作,这将提取值,然后将它们全部堆叠在一个数组中:$new = array_merge(&nbsp; &nbsp; [$value1],&nbsp; &nbsp; array_fill(1, 2, 0)&nbsp; &nbsp; [$value2],&nbsp; &nbsp; array_fill(4, 9, 0));我不确定“逗号缺失”是什么意思。

婷婷同学_

当你想要一个多维数组时,你正在制作一个多维数组。您正在使用具有您的数字的第一个值创建一个数组,第二个值是一个数组:array($value1, array_fill(1, 2, 0));(&nbsp; [0] => 633&nbsp; [1] => Array&nbsp; (&nbsp; &nbsp; [1] => 0&nbsp; &nbsp; [2] => 0&nbsp; &nbsp;))然后,数组合并会将这两个多维数组放在一起,得出您当前获得的结果。您需要类似这样的东西:$finalArray = array_merge(&nbsp; [$value1],&nbsp; array_fill(1, 2, 0)&nbsp; [$value2],&nbsp; array_fill(4, 9, 0));另外,4应该是3吗?

慕田峪7331174

如果您使用的是 PHP 7.4,则还可以在创建前两个数组时解压缩结果。array_fill$array1&nbsp;=&nbsp;array($value1,&nbsp;...array_fill(1,&nbsp;2,&nbsp;0));&nbsp; $array2&nbsp;=&nbsp;array($value2,&nbsp;...array_fill(4,&nbsp;9,&nbsp;0));然后,将按原样工作。array_merge或者(除非你需要和其他东西),你可以用同样的方式构建最终的数组,而无需.$array1$array2array_merge$finalArray&nbsp;=&nbsp;[$value1,&nbsp;...array_fill(1,&nbsp;2,&nbsp;0),&nbsp;$value2,&nbsp;...array_fill(4,&nbsp;9,&nbsp;0)];如果您没有使用 PHP 7.4...没关系。:-)
打开App,查看更多内容
随时随地看视频慕课网APP