PHP array_map()始终将我的第一个索引值更改为零值

时间:2018-11-23 03:21:14

标签: laravel array-map

我想问。您想帮我吗? 我在laravel中有一个控制器

这是我的收藏集

$milestones = $this->getmilestones();
dump($milestones);

值是

array:3 [▼
  0 => "["109"
  1 => "110"
  2 => "111"]"
]

然后我根据Here中的答案尝试这段代码 所以,我有这样的代码

array_unshift($milestones, $milestones[0]);
unset($milestones[0]);
dump($milestones);

值是(索引已更改)

array:3 [▼
  1 => "["109"
  2 => "110"
  3 => "111"]"
]

因此,在取消移动集合之后,我尝试使用array_map将字符串数组转换为整数数组。

$milestones = array_map('intval', $milestones);
dump($milestones);

但是,我仍然得到相同的价值。第一个索引像这样返回0

array:3 [▼
  1 => 0
  2 => 110
  3 => 111
]

我该怎么办?谢谢进阶

3 个答案:

答案 0 :(得分:0)

尝试这个

array_splice($milestone, 0, 1);
dump($milestone);

答案 1 :(得分:0)

使用array_values可以按照需要的方式重新索引数组:

$milestones = array_values($milestones);

如果$milestones是一个集合:

$milestones = $milestones->values();

方法values()将对您在集合实例中定义的项目调用array_values

来源:http://php.net/manual/en/function.array-values.php

答案 2 :(得分:0)

啊,终于我得到了想要的结果。我尝试删除方括号和双引号。因为里程碑是集合。所以我的代码是

$milestones = str_replace(array('[', ']', '"'),'',$milestones);

谢谢大家的帮助