개발 Q&A

제목 PHP 배열 합치기 문의 드립니다!!
카테고리 PHP
글쓴이 미스힐링 작성시각 2020/03/31 09:54:18
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 9370   RSS

input 태그를 동적으로 추가하고 있습니다. 아래와 같이 name[] 형식으로 네임을 선언 하였고

 

<input type="text" name="code[]" value="" autocomplete="off">

<input type="text" name="name[]" value="" autocomplete="off">

 

form submit action이 발생하면 POST파라미터로 전송을 받고 있는데

 

Array ( [0] => 1 [1] => 2 ) Array ( [0] => 11 [1] => 22 )

들어온값을 출력해보면 당연히 위와 같이 이런식으로 값이 들어옵니다. 

여기에서 첫번째 Array가 code[]에서 받아온 input value값이고

두번째 Array가 name[]에서 받아온 input value값입니다. 

 

그런데 실제로 code,name의 같은 인덱스끼리가 한쌍으로 DB에 insert가 되어야 되기때문에

Array([0] => 1 , [1] => 11) Array( [0] => 2, [1] => 22) 이런식으로 code한번 name값 한번

처리가되어야 하는데 

        foreach($arr as $key => $value) {

            foreach($value as $keys => $values) {

                //echo $key." => ".$keys." : ".$values."<br>";

                //$result = array_combine($key,$values);

                //echo $result[] = $key[$keys];

            }

        }

계속 이것저것 해보고있는데 원하는 결과값이 안나오네요 ㅠㅠ 고수님들의 조언 구합니다!!

 

 다음글 코드이그나이터 마이그레이션 질문 (1)
 이전글 application_folder 경로,, (1)

댓글

포포탄 / 2020/03/31 09:58:27 / 추천 0
for($i=0$i < count($code); $i++){
    $result[] = array($code[$i], $name[$i]);
}
/ 2020/04/07 02:40:54 / 추천 0

고수는 아니지만 단순히 배열 합치는 거면 array_merge() php 내장함수 사용하면 되고, name의 값이 키고 code의 값이 벨류인 한쌍의 데이터를 원하는게 맞다면,

$name = array(1,2,3);
$code = array(11,22,33);
//이런 형태로 데이터가 넘어온다는건가요?
//잘 모르겠지만 이렇다고 가정!
/*
결과가 array (
  1 => 11,
  2 => 22,
  3 => 33
  ...
);
인건가요?
*/

$result = array();
foreach ($name as $k => $l) {
  $result[$l] = $code[$k];
}
var_dump($result);

 

김치겸 / 2020/04/09 14:39:36 / 추천 0

제가 이해한 바로는 다차원 배열을 insert_batch 돌린다는 말씀인거 같은데

$data = array(
   array(
      'code' => 'code1' ,
      'name' => 'name1' 
   ),
   array(
      'code' => 'code2' ,
      'name' => 'name2' 
   ),
   array(
      'code' => 'code3' ,
      'name' => 'name3' 
   )
);

$this->db->insert_batch('mytable', $data);

이런형태로 들어가도록 원하시는거 아닐까요?

for($i=0; $i < count($code); $i++){
    $result = array(
       'code' => $code[$i] ,
       'name' => $name[$i]
    );
    array_push(#$data, $result);
}
$this->db->insert_batch('mytable', $data);

요새 자바하고있어서 가물가물하네요..

미스힐링 / 2020/04/10 11:52:18 / 추천 0
황금같은 조언 감사드립니다 ㅜㅜ주르륵