"5" ]-6ren">
gpt4 book ai didi

php 附加到数组时的非法偏移量

转载 作者:行者123 更新时间:2023-12-03 17:26:05 25 4
gpt4 key购买 nike

所以我正在尝试更改我拥有的数组;

  +rows: array:31 [▼
0 => array:2 [▼
0 => "20190101"
1 => "5"
]
1 => array:2 [▼
0 => "20190102"
1 => "15"
]
2 => array:2 [▼
0 => "20190103"
1 => "17"
]

将每行的索引 0 修改为 Carbon DateTime 对象以进行进一步处理。

现在我想要一个 json 输出,但我目前什至无法摆脱 Illegal offset type错误....

我用来检索数据(来自 GoogleAnalytics)的代码如下:
$get_stats = Analytics::performQuery(
Period::create(Carbon::now()->startOfMonth(), Carbon::now()->endOfMonth()),
'ga:users',
[
'dimensions' => 'ga:date',
'samplingLevel' => 'HIGHER_PRECISION',
'include-empty-rows' => true
]
);

这会返回很多代码,但我只是捕获 $get_stats->rows (有关该输出,请参见上文)。

然后我创建一个新数组,定义为 $stats = []; .

一个循环遍历 $get_stats->rows ,所以我可以“修改”数组中的数据并将其附加到新创建的数组中。
foreach ($get_stats->rows as $value)
{
$stats[] = [Carbon::createFromFormat('Ymd', $value[0]) => $value[1]];
}

但是我(总是)得到 Illegal offset type错误,与 $stats[] = [Carbon::createFromFormat('Ymd', $value[0]) => $value[1]]; 一致

有人可以帮我解决这个问题吗?当我尝试将数组附加到数组时,我不知道为什么会这样做。我试过 array_push() ,给出了同样的问题, array_merge有同样的问题...

最佳答案

发生这种情况是因为 Carbon::createFromFormat('Ymd', $value[0])返回 Carbon 对象 ,并且对象不是有效的数组索引。我不确定您要通过在 key 上进行此转换来达到什么目的,这似乎很简单

$stats[] = [$value[0] => $value[1]];

甚至
$stats[$value[0]] = $value[1];

可能对你更有用。您可以随时转换为 Carbon要显示数据时的对象。

关于php 附加到数组时的非法偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54430406/

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