Задать вопрос
@xGreen_Max

Settype в массиве?

Цикл по идее должен все элементы массива преобразовывать в integer,
но при выводе через echo, все элементы массива становятся единичкой, как это понимать?

$massive = [1.5, 2.6, 3, 4, 5];
  
foreach($massive as $key => $items){
$massive[$key] = settype($items, "integer"); // если эту строку заменить на $massive[$key] = (int) $items, то все работает как надо.
}

echo implode(',' ,$massive);
  • Вопрос задан
  • 82 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Stepik
    Язык программирования PHP
    1 неделя
    Далее
Решения вопроса 1
Почитайте документацию к функции settype, она возвращает true или false в зависимости от того успешно было преобразовано или нет. А при выводе через echo true преобразуется в 1

Надо так
$massive = [1.5, 2.6, 3, 4, 5];
  
foreach($massive as $key => &$item) {
    settype($item, "integer");
}


Либо так
$massive = [1.5, 2.6, 3, 4, 5];
  
foreach($massive as $key => $item) {
    $massive[$key] = (int)$item;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы