Задать вопрос
@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 Простой Комментировать
Решения вопроса 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;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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