질문드립니다.(분할필드 가변변수)

질문드립니다.(분할필드 가변변수)

QA

질문드립니다.(분할필드 가변변수)

본문

아래 색상으로 표시된 부분

wr_11을 분할필드로 하려고 하는데

wr_11[0] 

wr_11[1] 이런식으로 나오게 [$h]를 

'wr_'.$k 다음에 붙여야 하는데 어떻게 해야 하는지요...

 

아래처럼하니 출력이 안됩니다.

 

 $wra_start= 71; $h=0; 
for($k=11; $k<=63; $k+=4){ $h++; $hs=sprintf("%02d", $h) ; 
    $wr11 = 'wr_'.$k[$h];     $wr71 = 'wr_'.$wra_start; 
    $wr12 = 'wr_'.($k+1); $wr74 = 'wr_'.($wra_start+3);
    $wr13 = 'wr_'.($k+2); $wr73 = 'wr_'.($wra_start+2);
    $wr14 = 'wr_'.($k+3); $wr72 = 'wr_'.($wra_start+1);
    $wra_start+=7;

이 질문에 댓글 쓰기 :

답변 3

반복문안에서 다른 값을 처리하는 것에 대한 질문이라 판단하고 답을 드립니다.

 

 


$wra_start= 71; $h=0; 
for($k=11; $k<=63; $k+=4){ $h++; $hs=sprintf("%02d", $h) ; 
    $wr11 = 'wr_'.$k[$h];     $wr71 = 'wr_'.$wra_start; 
    $wr12 = 'wr_'.($k+1); $wr74 = 'wr_'.($wra_start+3);
    $wr13 = 'wr_'.($k+2); $wr73 = 'wr_'.($wra_start+2);
    $wr14 = 'wr_'.($k+3); $wr72 = 'wr_'.($wra_start+1);
    $wra_start+=7;
 

와 같은처리가 정상적으로 이루어 지려면

 

wr_11 에도 여러개의 값이 있는것 같네요 

유연한 Key값을 소유한 내용이라면 foreach를 사용하면 좋고

고정적인 숫자가 key값이라면 for 안 중첩 for문을 사용하면 됩니다

 

 


// 구조를 조금 변경해봅니다.
// $wr 이란 변수를 만들어 배열로 구성하고
$wr = array();
for ($wra_start= 71, $h=1, $k=11; $k <= 63; $wra_start += 4)  {
   
    for ($x =0; $x < 4; $x++, $h++, $k++, $wra_start++)   {
        $hs=sprintf("%02d", $h) ; 
        $wr[$k] = 'wr_'.$k[$h];    
        $wr[$wra_start] = 'wr_'.$wra_start; 
   }
    // $wra_start+=7;
}    
 
//확인을 위한 출력
print_r ($wr);

 

이렇게 해서 한번 확인해보세요

네 맞습니다. 다른 값이 있는거 같습니다.

<input type="url" pattern="https?://.+" title="http:// 또는 https://" name="<?=$wr11?>[<?=$h?>]" class='ed urlk' id="<?=$wr11?>" onchange="equalVal(<?=$wr71?>, this.value);"  value="<?=$write[$wr11]?>" size="45" itemname="상품링크<?=$h?>" >

11~70까지는 가로 1행에 4개 핃드

71~ 175까지는 가로 1행에 7개 필드 이래서 wra_start이런거 같습니다.

총 15개 행이구요,,,

답변을 참고해서 삽질해보겠습니다. 늘 감사합니다.

만들어주신 코드는 4개 행만 나오고
wr_11[0]아니고 wr_[0] 이렇게만 출력됩니다.

$x =0; $x < 4; $x++, 여기서 x는 왜있는건지 알 수 잇을까요?



중간에 중첩루프에서 처리한건
반복되는 동작중에 부분증가만 하는 작업을 반복하지 않게 하려고 한겁니다.
wr11 ~ wr14 까지의 동작에 해당되는 사항이 동일하게 증가하는 값이라서
x = 0 ~ 3 까지 작동시킨겁니다.

질문이 이해가 안되네요..

하고싶으신 것, 원하는 것을 말씀하시면,

방법을 알려드리는 것이 빠를듯 싶습니다.

설명이 좀 복잡해서 오히려 혼란을 드릴까 싶어 그런건데 제가 질문이  잘못된 거 같습니다..

wr_11
wr_12
wr_13
..
..

이거를 for문으로 출력하는건데요,,,그래서
인풋도 이렇게 되어 있습니다.

<input type="url" name="<?=$wr11?>"  value="<?=$write[$wr11]?>"  "링크<?=$h?>" >

그런데
wr_11을 분할 필드로 하려고 하는거라
위의 for문에서

 'wr_'.$k; 

$k뒤에 [$h]가 붙게 만들어야

인풋에서

<input type="url" name="wr_11[]"  value="wr_11[0]"  "링크<?=$h?>" >
<input type="url" name="wr_11[]"  value="wr_11[1]"  "링크<?=$h?>" >
<input type="url" name="wr_11[]"  value="wr_11[2]"  "링크<?=$h?>" >

이런 식으로 출력되어서요..

분할필드라면, 구분자로 여러개의 값이 저장되어 있는건가요?

만약 구분자가 | 라면.. 아래와 같이 하면 됩니다.

$wr_11_arr = explode("|",$write['wr_11']);

<input type="url" name="wr_11[]"  value="<?=$wr_11_arr[0]?>"  "링크<?=$h?>" > 
<input type="url" name="wr_11[]"  value="<?=$wr_11_arr[1]?>"  "링크<?=$h?>" > 
<input type="url" name="wr_11[]"  value="<?=$wr_11_arr[2]?>"  "링크<?=$h?>" >

감사합니다. <input type="url" pattern="https?://.+" title="http:// 또는 https://" name="<?=$wr11?>[<?=$h?>]" class='ed urlk' id="<?=$wr11?>" onchange="equalVal(<?=$wr71?>, this.value);"  value="<?=$write[$wr11]?>" size="45" itemname="상품링크<?=$h?>" >

인풋에 이렇게 한개로 해서 자동출력되게 해야 해서요,,

답변을 작성하시기 전에 로그인 해주세요.
전체 197
QA 내용 검색

회원로그인

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