PHP array_map() 总是将我的第一个索引值更改为零值
PHP array_map() always change my first index value to zero value
我在 Laravel
中有一个控制器
这是我的collection
$milestones = $this->getmilestones();
dump($milestones);
值为
array:3 [▼
0 => "["109"
1 => "110"
2 => "111"]"
]
我根据答案 尝试了这段代码。
所以,我有这样的代码
array_unshift($milestones, $milestones[0]);
unset($milestones[0]);
dump($milestones);
并且值为(索引已更改)
array:3 [▼
1 => "["109"
2 => "110"
3 => "111"]"
]
因此,在取消 collection 的移位后,我尝试使用 array_map 将字符串数组转换为整数数组。
$milestones = array_map('intval', $milestones);
dump($milestones);
但是,我仍然得到了相同的值。第一个索引 returns 0 像这样
array:3 [▼
1 => 0
2 => 110
3 => 111
]
我该怎么办?
试试这个
array_splice($milestone, 0, 1);
dump($milestone);
使用 array_values
这应该按照您需要的方式重新索引您的数组:
$milestones = array_values($milestones);
如果$milestones
是一个集合:
$milestones = $milestones->values();
方法 values()
将对集合实例中定义的项目调用 array_values
。
啊,终于得到想要的结果了。我尝试删除方括号和双引号。因为里程碑是集合。所以我的代码是
$milestones = str_replace(array('[', ']', '"'),'',$milestones);
谢谢大家的帮助
我在 Laravel
中有一个控制器这是我的collection
$milestones = $this->getmilestones();
dump($milestones);
值为
array:3 [▼
0 => "["109"
1 => "110"
2 => "111"]"
]
我根据答案
array_unshift($milestones, $milestones[0]);
unset($milestones[0]);
dump($milestones);
并且值为(索引已更改)
array:3 [▼
1 => "["109"
2 => "110"
3 => "111"]"
]
因此,在取消 collection 的移位后,我尝试使用 array_map 将字符串数组转换为整数数组。
$milestones = array_map('intval', $milestones);
dump($milestones);
但是,我仍然得到了相同的值。第一个索引 returns 0 像这样
array:3 [▼
1 => 0
2 => 110
3 => 111
]
我该怎么办?
试试这个
array_splice($milestone, 0, 1);
dump($milestone);
使用 array_values
这应该按照您需要的方式重新索引您的数组:
$milestones = array_values($milestones);
如果$milestones
是一个集合:
$milestones = $milestones->values();
方法 values()
将对集合实例中定义的项目调用 array_values
。
啊,终于得到想要的结果了。我尝试删除方括号和双引号。因为里程碑是集合。所以我的代码是
$milestones = str_replace(array('[', ']', '"'),'',$milestones);
谢谢大家的帮助