php array 질문 드립니다. 채택완료

안녕하세요~ 

php array 질문 드립니다.

 

Array
(
    [1999-01-01] => Array
        (
            [0] => Array
                (
                    [id] => 1
                    [name] => 한놈
                    [birth_date] => 1999-01-01
                )

            [1] => Array
                (
                    [id] => 3
                    [name] => 석삼
                    [birth_date] => 1999-01-01
                )
        )

    [2000-01-01] => Array
        (
            [0] => Array
                (
                    [id] => 2
                    [name] => 두시기
                    [birth_date] => 2000-01-01
                )

            [1] => Array
                (
                    [id] => 4
                    [name] => 너구리
                    [birth_date] => 2000-01-01
                )
        )
)

위와 같은 데이터가 있는데요.

이를 아래처럼 같은 birth_date 를 갖는 데이터에 같은 no 를 추가 하려고 합니다.

no id name birth_date .
1 1 한놈 1999-01-01 .
1 3 석삼 1999-01-01 .
2 2 두시기 2000-01-01 .
2 4 너구리 2000-01-01 .

 

이런식으로 데이터를 저장하려는데요. php 코드를 어떤식으로 짜야할지 모르겠습니다.

 

임의 의 값이될 [1999-01-01],  [2000-01-01] 를 선택만 해도 가공이 쉬울들 한데요. 방법이 있을까요?

 

코드든 힌트든 좋습니다. 고수님들의 고언 부탁드립니다~

 

답변 2개

채택된 답변
+20 포인트

Copy
$no = 1;
$str = [];
foreach($arr as $k => $v) {
    foreach($arr[$k] as $key => $value) {
        $str[] = "(".$no.", ".$value['id'].", '".$value['name']."', '".$value['birth_date']."')";
    }
    $no++;
}

$query = "INSERT INTO `table`(`no`, `id`, `name`, `birth_date`) VALUES ".implode(", ", $str);

bulk insert 방식이라 칼럼명이랑 뒤에 데이터 부분 개수를 맞춰 주셔야 합니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변에 대한 댓글 1개

답변 감사합니다. 머리로는 이해가 되는데. 코딩이 되지가 않아요. ㅜㅜ
임의 의 값이될 [1999-01-01], [2000-01-01] 를 선택만 해도 가공이 쉬울들 한데요.
방법이 있을까요?

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고