Я написал эту функцию, которая принимает число и форматирует его запятыми, поэтому каждые три цифры справа налево, запятая, как добавлено.Преобразование 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
?>
Я думаю, что я только что понял, что я мог бы сделать, если бы выбрал этот маршрут.
Я бы просто прошел через строку (как массив cringe) и добавить его в массив.
что-то вроде
$array = array();
$num_string = strval($num);
$num_length = strlen($num_string);
for ($i = 0; $i < $num_length; $i++) {
$array = $num_string[$i];
}
Я думаю, что будет работать, не уверен, было бы попробовать, но у меня есть решение, которое гораздо проще уже благодаря akDeveloper
Вы пробовали функцию 'number_format'. Это внутренняя функция php http://php.net/manual/en/function.number-format.php 'number_format (300000); # 300 000' – akDeveloper
Эй, посмотри на это. Я на самом деле видел ниже, есть формат денег, вот что я пытался сделать. hahaha – joehungjohn
На самом деле ваше решение является лучшим до сих пор, благодаря @akDeveloper – joehungjohn