for문으로 만든 배열을 wr_1에 저장하려면?

for문으로 만든 배열을 wr_1에 저장하려면?

QA

for문으로 만든 배열을 wr_1에 저장하려면?

본문

for문으로 4씩 증가된 배열만 추출하여, wr_1에 저장하려고 하는데 이상하게 마지막 값만 저장이 되어요. 
for문으로 만든 배열을 wr_1에 저장하려면 어떻게하면 될까요?

for ($i=1; $i<count($aaa); $i+=4) { 
$wr_1 = $aaa[$i],;
}  

이 질문에 댓글 쓰기 :

답변 3

$wr_1 = array();

for ($i=1; $i<count($aaa); $i+=4) {

   $wr_1[] = $aaa[$i],;
}

for 안에 $i+=4 이건 왜 하신 건지 모르겠네요.

그리고 $aaa 변수 안에 뭐가 들었는지도 알려 주셔야 할 것 같습니다.

 

질문을 남기실 때 제일 좋은 방법은 자기가 한 코드를 올리는 것보다 차라리 어떤 것들이 있는데 이걸 갖고 결과를 어떻게 받고 싶다라고 하시는 게 좋습니다.

왕계란님 답변 감사드려요.
$aaa 에 ",mb_id,,wr_id,,mb_id,,wr_id,,mb_id,,wr_id," 이런식으로 아이디에 wr_id가 같이 저장이 됩니다. 4씩 더한 배열만 추출 하여서 아이디만 wr_1에 저장을 하려고 합니다.
아래처럼 wr_1에 아이디를 저장하여서, write_update에 넣어서 쪽지 발송 아이디를 추출하려고 합니다.

"mb_id,mb_id,mb_id,mb_id,"

test1,test2,test3,test3 가 아이디구요.

$aaa는

,test1,1,test2,2,test3,3,test4,4,test5,5, 이런식으로 저장이 되는데,

$aaa[1]$aaa[5]$aaa[9]$aaa[13] 이렇게 1부터 시작해서 4씩 증가하면,

test1,test2,test3,test3

아이디 추출이 가능해서요.

이 아이디들을 wr_1에 저장을 하고, write_update에서 쪽지보내기용 아이디로
쓰려고 합니다.

왕계란님 답변 감사드려요.
미리 정확히 말씀못드려 죄송해요.
$aaa값은 ",$mb_id,,+$wr_id," 이렇게 구성이 됩니다.
숫자 앞에는 +가 붙어 있고, mb_id와 wr_id 사이에 콤마가 저장이 되어요.
검색때문에 아이디 양옆에 콤마를 붙였습니다.

,test1,,+1,,test2,,+2,,test3,,+3,,test4,,+4,,test5,,+5,

이런식이 정확한 값입니다.

도움 부탁 드려요~ㅜㅜ


<?
$str = ",test1,,+1,,test2,,+2,,test3,,+3,,test4,,+4,,test5,,+5,";
$aaa = explode(",", $str);
$aaa = array_filter($aaa);
$num = array();
foreach($aaa as $v) {
	if(!is_numeric(str_replace("+", "", $v))) $num[]= $v;
}

print_r($num);

http://nyaongii.dothome.co.kr/temp/wrid_115923.php

왕계란님 너무 잘됩니다. 최고세요!

아래처럼 구성하였습니다. 정말 감사드려요.
좋은 하루 되세요.

<?
$aaa= explode(",", $str);
$aaa = array_filter($aaa);
$bbb = array();
foreach($aaa as $v) {
if(!is_numeric(str_replace("+", "", $v))) $bbb[]= $v;
}

foreach($bbb as $i) {
    $ccc .= $i.',';
}

$ccc = rtrim($ccc,',');

$wr_1 = "$ccc";

echo "$wr_1";
?>

왕계란님 implode 로 하니 훨씬 깔끔하고 좋아요. 감사드려요.

아이디가 중복이 되는 문제가 있는데, 중복되는 아이디를 하나로 만드는 방법이 있을까요?
"test1,test3,test1,test2" 이렇게 생성되면, test1이 중복이 되어버려서요.
쪽지가 2번 날라갈 것 같아서, 걱정이 되네요.

왕계란님 마지막으로 도움 한번 더 부탁드려요.ㅜㅜ
쪽지를 보내려면 아이디를 따옴표가 둘러싸고 있어야 되나봐요.

<?
// 문의글등록 쪽지전송
$recv = array("아이디1","아이디2"); //쪽지 전송 아이디
$me_memo = "쪽지가 발송되었습니다."; //관리자에게 보낼 메세지

foreach($recv as $v) {
 
 $row = sql_fetch(" select mb_id, mb_nick, mb_open, mb_leave_date, mb_intercept_date from {$g5['member_table']} where mb_id = '{$v}' ");
    $recv_mb_id  = $row['mb_id'];
 
 if($recv_mb_id) {
  $recv_mb_nick = get_text($row['mb_nick']);
  $tmp_row = sql_fetch(" select max(me_id) as max_me_id from {$g5['memo_table']} ");
  $me_id = $tmp_row['max_me_id'] + 1;
 
  // 쪽지 INSERT
  $sql = " insert into {$g5['memo_table']} ( me_id, me_recv_mb_id, me_send_mb_id, me_send_datetime, me_memo ) values ( '$me_id', '$recv_mb_id', '{$member['mb_id']}', '".G5_TIME_YMDHIS."', '{$me_memo}' ) ";
  sql_query($sql);
 
 }
}
?>




<?
$aaa= explode(",", $str);
$aaa = array_filter($aaa);
$bbb = array();
foreach($aaa as $v) {
if(!is_numeric(str_replace("+", "", $v))) $bbb[]= $v;
}
$bbb = array_unique($bbb);
$ccc = implode(",", $bbb);
?>

$ccc 의 값이 test1,test2,test3 라면
$ccc 값이 'test1','test2','test3' 로 아이디 사이에 따옴표가 붙어 나오게 하려면
어떻게해야 되나요?
도움 부탁 드려요~

당연하죠.

 

왜냐면 변수가 for 루프돌면서 계속 덮어씌워지고 있기 때문에 마지막 실행 값만 저장되는거죠.

 

$wr_1 변수가 아니라 $wr_1[] 변수를 쓰셔서 변수값을 계속 쌓아야 합니다. 

 

 

로직이 이거면 당연히 마지막 값만 저장되는거 아닌가요;;;;

 

$wr_1 변수에 for문으로 계속 증가값을 넣어주니 마지막 값만 들어가겠죠;;;

 

문제점은 이거고 해결방법은 wr_1에 넣으시려는거보면 게시판 디비에 어떤 값을 넣으시려는거 

 

같은데 정확히 몰 하시려는지 몰라서 말씀드리기가 어려워요;;;ㅎㅎ;;

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

회원로그인

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