array 질문

array 질문

QA

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() 같은 함수를 써서 그냥 넣어버리면 되는데요.


 

답변감사합니다.
음.. m1234m5678m2455 이런식으로 있는데
m으로 split해서 배열에 2자리마다 배열로 각각 담아서 보내야하는데 저방법말고 더 좋은방법이있는건가요?
예를들어 위같은경우는
num[ [ [1,2],[3,4] ] ,[ [5,6],[7,8] ] ] 이런식으루요

이런 방법은 어떠세요.
문자열 길이만 일정하다면 아래가 더 편한데요.
<?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 = 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] };
}
 
답변을 작성하시기 전에 로그인 해주세요.
전체 113
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT