2016-08-12 5 views
2

Я написал эту функцию, которая принимает число и форматирует его запятыми, поэтому каждые три цифры справа налево, запятая, как добавлено.Преобразование 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

+2

Вы пробовали функцию 'number_format'. Это внутренняя функция php http://php.net/manual/en/function.number-format.php 'number_format (300000); # 300 000' – akDeveloper

+0

Эй, посмотри на это. Я на самом деле видел ниже, есть формат денег, вот что я пытался сделать. hahaha – joehungjohn

+0

На самом деле ваше решение является лучшим до сих пор, благодаря @akDeveloper – joehungjohn

ответ

3

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

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

OUTPUT: "3". как $ n при 2 = 3

Смежные вопросы