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);
Другие вопросы по тегам