테스트 사이트 - 개발 중인 베타 버전입니다

array 질문 채택완료

rlawhd 6년 전 조회 2,670

1,2,3,4~ 9,10 

 

10개의 이어져있는 문자열이있고;

 

var str = 12345678910;

 

이걸

 </p>

<p>num[0] => {1,2}</p>

<p>num[1] => {3,4}</p>

<p>..</p>

<p>num[5] =>{9,10}</p>

<p>

이런식으로 만들려고하는데요

제가 생각해본건

</p>

<p>var Num = new Array();</p>

<p>str = 012345678910;</p>

<p>for(i=0;i<6;i++){

  for(j=0;j<10;j+=2){

     num.push(str[j].substr(j,j+2));</p>

<p>  }

}</p>

<p>

 

이건데 뭐가 잘못됐을까요?

 

숫자 자르는거는 그런다치더라도 객체배열 넣는게 잘못된거같은데..

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
6년 전

그렇다면...

 

str = 010203040506070080910;

for( i=0; i<5; i++) {

   num[i] = { substr( str, 4i, 2) , substr( str, 4i+2, 2) };

}

 

그런데 왜? 저렇게 해요.... 그냥 일련번호라면 for 문 돌려서 그냥 넣어버리면 되는데요.

뭐 strpad() 나 printf() 나 number_format() 같은 함수를 써서 그냥 넣어버리면 되는데요.


 
로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

r
rlawhd
6년 전
답변감사합니다.
음.. m1234m5678m2455 이런식으로 있는데
m으로 split해서 배열에 2자리마다 배열로 각각 담아서 보내야하는데 저방법말고 더 좋은방법이있는건가요?
예를들어 위같은경우는
num[ [ [1,2],[3,4] ] ,[ [5,6],[7,8] ] ] 이런식으루요
팻시
6년 전
이런 방법은 어떠세요.
문자열 길이만 일정하다면 아래가 더 편한데요.
<?php

$str = "Hello Friend";

$arr1 = str_split($str);
$arr2 = str_split($str, 3);

print_r($arr1);
print_r($arr2);

?>
출력은:


Array
(
[0] => H
[1] => e
[2] => l
[3] => l
[4] => o
[5] =>
[6] => F
[7] => r
[8] => i
[9] => e
[10] => n
[11] => d
)

Array
(
[0] => Hel
[1] => lo
[2] => Fri
[3] => end
)

댓글을 작성하려면 로그인이 필요합니다.

6년 전

어떤 언어로 하는건데요?

 

php 라면

 

array str_split ( string $string [, int $split_length] )

문자열을 배열로 변환합니다. 선택적인 split_length 인자를 지정하면, 반환하는 배열은 split_length 길이의 원소로 나누어집니다. 지정하지 않으면 하나의 원소에 한 문자가 들어갑니다.

split_length가 1보다 작을 경우에는 FALSE를 반환합니다. split_length 길이가 string의 길이보다 클 경우, 문자열 전체를 첫번째 배열 원소로 반환합니다.


예 2334. str_split() 사용 예제

<?php

$str = "Hello Friend";

$arr1 = str_split($str);
$arr2 = str_split($str, 3);

print_r($arr1);
print_r($arr2);

?>
출력은:


Array
(
    [0] => H
    [1] => e
    [2] => l
    [3] => l
    [4] => o
    [5] =>
    [6] => F
    [7] => r
    [8] => i
    [9] => e
    [10] => n
    [11] => d
)

Array
(
    [0] => Hel
    [1] => lo
    [2] => Fri
    [3] => end
)

 

 

</p>

<p>str = "fdsafdsafdsafdsafdsadsfa";</p>

<p>arrStr = str_split( str, 2 );</p>

<p> </p>

<p>for( i=0; i<5; i++) {

   num[i] = { arrStr[2i], arrStr[2i=1] };

}</p>

<p> </p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

r
rlawhd
6년 전
javascript 입니다 참고하겠습니다.

댓글을 작성하려면 로그인이 필요합니다.

6년 전

저 위에 문자열 str = 12345678910  이건 발상이 잘못됬어요.

저 열번째 문자 10이 한 덩어리란 것을 어떻게 알죠?

64진법으로

0~9A~Za~z  숫자를 한글자짜리 문자로 쓰지 않는 한 알아볼수 없어요.

그래봐야 64개뿐이고요.

 

그래서 문자열을 잘라 넣는 것은 불가합니다.

 

</p>

<p>for( i=0; i<5; i++) {</p>

<p>   num[i] = { 2i+1, 2i+2 };</p>

<p>}</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

r
rlawhd
6년 전
아, 제가 예를 잘못들었네요
1 2 3 한자리는
01 02 03 로 들어갑니당

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인