[php] PHP에서 선행 0으로 숫자 서식 지정

값이 포함 된 변수가 있습니다 1234567.

정확히 8 자리를 포함하고 싶습니다 01234567.

이를위한 PHP 함수가 있습니까?



답변

사용 sprintf:

sprintf('%08d', 1234567);

또는 다음을 사용할 수도 있습니다 str_pad.

str_pad($value, 8, '0', STR_PAD_LEFT);


답변

값이 $ value 인 경우 :

  • 그것을 반향 시키려면 :

    printf("%08d", $value);

  • 그것을 얻기 위해:

    $formatted_value = sprintf("%08d", $value);

그 트릭을해야합니다


답변

1 대신 01이 필요할 때 다음이 나를 위해 일했습니다.

$number = 1;
$number = str_pad($number, 2, '0', STR_PAD_LEFT);


답변

echo str_pad("1234567", 8, '0', STR_PAD_LEFT);


답변

나는 당신이 무엇을하고 싶은지 잘 모르겠지만 아마도 sprintf 찾고 있습니다.

이것은 :

$value = sprintf( '%08d', 1234567 );


답변

sprintf 당신이 필요한 것입니다.

위의 링크 된 페이지에서 EDIT ( 어떻게 downvotes에 의해 요청 됨 ) 샘플은 다음과 같습니다. “제로 패딩 정수”:

<?php
    $isodate = sprintf("%04d-%02d-%02d", $year, $month, $day);
?>


답변

간단한 답변

$p = 1234567;
$p = sprintf("%08d",$p);

“8 자리를 넘지 않아야합니다”라는 주석을 해석하는 방법과 입력 또는 출력을 참조하는 방법을 잘 모르겠습니다. 출력을 참조하는 경우 문자열을 자르려면 추가 substr () 호출이 있어야합니다.

처음 8 자리를 자르려면

$p = substr(sprintf('%08d', $p),0,8);

마지막 8 자리를 자르려면

$p = substr(sprintf('%08d', $p),-8,8);