php - 数组值未分配给其他数组
问题描述
我有这几行:
$gifts_offered_in_sub = array();
$gifts_offered_in_final = array();
foreach($gifts_offered_in as $k=>$v) {
$s = sizeof($v);
foreach($v as $vk=>$vv) {
$vv[0] = $s;
}
$gifts_offered_in_final[] = $v;
}
var_dump($gifts_offered_in_final);
该gifts_offered_in
数组包含一个如下所示的数组:
array(1) {
[0]=>
array(2) {
[220669]=>
array(2) {
[0]=>
string(1) "1"
[1]=>
string(1) "1"
}
[220664]=>
array(2) {
[0]=>
string(1) "1"
[1]=>
string(1) "1"
}
}
}
我想要实现的是检查数组中的每个元素(在这种情况下,只有 1 个元素[0]
检查子数组是否包含超过 1 个值,如果是,则更改子数组[0]
以包含最后得到这个结果:
array(1) {
[0]=>
array(2) {
[220669]=>
array(2) {
[0]=>
string(1) "2"
[1]=>
string(1) "1"
}
[220664]=>
array(2) {
[0]=>
string(1) "2"
[1]=>
string(1) "1"
}
}
}
但它不起作用,var_dump 给了我完全相同的数组,就好像我没有更改循环中的任何值一样。知道我在代码中做错了什么吗?
解决方案
此行仅更改您的本地 $vv 变量:
$vv[0] = $s;
您应该将其更改为:
$gifts_offered_in[$k][$vk][0] = $s;
和这个 :
$gifts_offered_in_final[$k] = $gifts_offered_in[$k];
然后,您正在逐步构建的新 $gifts_offered_in_final 数组中进行更改。(感谢编辑建议。)
推荐阅读
- javascript - 如何使用我使用 fetch API 调用检索到的数据更新 Reactjs 状态?
- python - 组合 pandas 将结果作为单个数据框中的多列应用
- python - 有没有更短的方法来编写逗号代码?
- bixby - Bixby 中的交互式对话实现
- php - Laravel5.8 推送器不工作。收不到
- c - 分段错误的原因与使用以下 C 代码返回随机值
- uwp - 在 UWP 应用程序中单击鼠标时如何设置滑块位置?
- javascript - 为什么 setTimeout 不能按预期工作?
- php - Laravel DB::statement 无法为涉及列表达式的查询正确准备值
- konvajs - 在 Konva 中反转 Y 轴