преобразование данных — конвертировать целое число php в строку в массив?

Я написал эту функцию, которая берет число и форматирует его запятыми, поэтому каждые три цифры справа налево добавляются запятая.

Это работает, но есть эта ошибка «смещенного строкового смещения», которая, как я обнаружил, была вызвана тем, что я рассматривал строку как массив.

Я решил опубликовать свой код, чтобы узнать, есть ли более простой способ сделать это.

В противном случае мой главный вопрос — как я могу превратить эту строку в массив?

Я пытался использовать str_split, но это сломало мой код / ​​страницу.

<?php

// comma function
function commaCreate($num) {
// convert number to string
$int_string = strval($num);
// turn $int_string into an array (omitted as it doesn't work)
// $int_string = str_split($int_string);
// get length of string
$int_length = strlen($int_string);
// create variables
$counter          = 0;
$formatted_number = "";
// run through number right-to-left
for ($i = $int_length; $i >= 0; $i--) {
if ($counter == 3) {
// add number
$formatted_number = $int_string[$i].$formatted_number;
// add comma
if ($i != 0) {
$formatted_number = ",".$formatted_number;
}
// reset counter
$counter = 0;
$counter++;
}
else {
$formatted_number = $int_string[$i].$formatted_number;
$counter++;
}
}
// output formatted number
echo $formatted_number;
}

commaCreate(300000); // outputs 300,000

?>

Думаю, я только что понял, что мог бы сделать, если бы выбрал этот путь.

Я бы просто пройти через строку (как массив съеживаться) и добавить его в массив.

что-то вроде

$array      = array();
$num_string = strval($num);
$num_length = strlen($num_string);
for ( $i = 0; $i < $num_length; $i++) {
$array = $num_string[$i];
}

Я думаю, что это сработало бы, не уверен, пришлось бы попробовать, но у меня есть решение, которое уже намного проще благодаря akDeveloper

2

Решение

PHP переменные $ включают переменные каждого типа. Вам просто нужно несколько хитростей, чтобы преобразовать любую переменную в то, что вы хотите. Например:

$n = 12345; // This is integer
$s = $n.""; // Now $s is string.
echo $s[2]; // Now $s is array.

ВЫХОД: «3». как $ n при 2 = 3

3

Другие решения

Других решений пока нет …