PHP array_map() всегда изменяет мое первое значение индекса на нулевое значение
Я бы хотел спросить. Вы хотите мне помочь? У меня есть контроллер в Laravel
Это мои коллекции
$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"]"
]
Итак, после отмены смещения коллекций я пытаюсь использовать array_map для преобразования массива строк в массив целых чисел.
$milestones = array_map('intval', $milestones);
dump($milestones);
Но я все еще получил ту же стоимость. Первый индекс возвращает 0, как это
array:3 [▼
1 => 0
2 => 110
3 => 111
]
Что я должен делать? Заранее спасибо
3 ответа
Ах, наконец я получил результаты, которые я хотел. Я пытаюсь убрать квадратные скобки и двойные кавычки. Потому что вехи это сбор. Итак, мой код
$milestones = str_replace(array('[', ']', '"'),'',$milestones);
Спасибо за вашу помощь
Использование array_values
это должно переиндексировать ваш массив так, как вам нужно:
$milestones = array_values($milestones);
Если $milestones
это коллекция:
$milestones = $milestones->values();
Метод values()
позвоню array_values
на ваши предметы, определенные в вашей коллекции экземпляра.
Источник: http://php.net/manual/en/function.array-values.php
Попробуй это
array_splice($milestone, 0, 1);
dump($milestone);