array 질문
본문
1,2,3,4~ 9,10
10개의 이어져있는 문자열이있고;
var str = 12345678910;
이걸
num[0] => {1,2}
num[1] => {3,4}
..
num[5] =>{9,10}
이런식으로 만들려고하는데요
제가 생각해본건
var Num = new Array();
str = 012345678910;
for(i=0;i<6;i++){
for(j=0;j<10;j+=2){
num.push(str[j].substr(j,j+2));
}
}
이건데 뭐가 잘못됐을까요?
숫자 자르는거는 그런다치더라도 객체배열 넣는게 잘못된거같은데..
!-->!-->답변 3
그렇다면...
str = 010203040506070080910;
for( i=0; i<5; i++) {
num[i] = { substr( str, 4i, 2) , substr( str, 4i+2, 2) };
}
그런데 왜? 저렇게 해요.... 그냥 일련번호라면 for 문 돌려서 그냥 넣어버리면 되는데요.
뭐 strpad() 나 printf() 나 number_format() 같은 함수를 써서 그냥 넣어버리면 되는데요.
!-->
저 위에 문자열 str = 12345678910 이건 발상이 잘못됬어요.
저 열번째 문자 10이 한 덩어리란 것을 어떻게 알죠?
64진법으로
0~9A~Za~z 숫자를 한글자짜리 문자로 쓰지 않는 한 알아볼수 없어요.
그래봐야 64개뿐이고요.
그래서 문자열을 잘라 넣는 것은 불가합니다.
for( i=0; i<5; i++) {
num[i] = { 2i+1, 2i+2 };
}
어떤 언어로 하는건데요?
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
)
str = "fdsafdsafdsafdsafdsadsfa";
arrStr = str_split( str, 2 );
for( i=0; i<5; i++) {
num[i] = { arrStr[2i], arrStr[2i=1] };
}