배열 질문입니다.

배열 질문입니다.

QA

배열 질문입니다.

본문

​
array(
[test1] => array
(
[0] => a1
[1] => a2
)

[test2] => array
(
[0] => b1
[1] => b2
)
)

 

이런식의 배열이 있다면

 

다음과 같은 배열로 변경 하는 방법이 있을까요?

기초가 부족하다보니 for를 돌리고 있네요 ㅎㅎㅎ


array (

[0] => array(
[test1]=>a1
[test2]=>b1
)
[1] => array(

[test1]=>a2
[test2]=>b2 
)
)

 

 

 

 

목적


[{'test1':'a1', 'test2': 'b1'}, {'test1':'a2', 'test2': 'b2'}​]

 처럼 요구하는 json처리를 위함

이 질문에 댓글 쓰기 :

답변 3

for 로 돌리셨으니 저는 foreach 로..;;  

 


$s = array(
test1 => array(0 => 'a1',1 => 'a2'),
test2 => array(0 => 'b1',1 => 'b2')
);
print_r2($s);
$rr = array();
foreach($s as $k => $v){    
    $i=0;
    foreach($v as $j => $v2){
        $rr[$i][$k] = $v2;    
        $i++;
    }
}
print_r2($rr); 

 

 

책상 앞에 붙어 있는 php 배열 함수 찾아봐도 해결법(?)이 안 나와서 그냥 해본건데
채택을 해버리시니...  감사합니다~ㅎㅎㅎ

뭔가 더 좋은 방법이 있지 않을까 하며 다른 댓글을 기대하고 있었는데 이렇게 넘어가는군요~^^

이런식은 어떨까요?

 

$prices = array(

    'Tires'=>100,

    'Oil'=>10,

    'Spark Plugs'=>4

);

 

while(list($product, $price) = each($prices)) {

    echo "$product - $price";

}

 

 

 


$Data = array('test1'=>array('a1', 'a2', 'a3'), 'test2'=>array('b1', 'b2', 'b3'));
$DataKay = array_keys($Data);
$Out = array();
foreach($Data as $key=>$val) {
 
	for($i=0; $i<count($Data[$key]); $i++) {
 
		$Out[$i][$key] = $Data[$key][$i];
	}
}
/*
결과:
Array
(
    [0] => Array
        (
            [test1] => a1
            [test2] => b1
        )
    [1] => Array
        (
            [test1] => a2
            [test2] => b2
        )
    [2] => Array
        (
            [test1] => a3
            [test2] => b3
        )
) 
*/
 
답변을 작성하시기 전에 로그인 해주세요.
전체 71
QA 내용 검색

회원로그인

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