채택완료

배열 질문입니다.

2014-11-25 (화) 17:35:47 3,546

Copy
​array([test1] => array([0] => a1[1] => a2)[test2] => array([0] => b1[1] => b2))

 

이런식의 배열이 있다면

 

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

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

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

 

 

 

 

목적

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

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

|

답변 3개 / 댓글 5개

채택된 답변
+20 포인트

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

Copy
$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);

답변에 대한 댓글 3개

역시 방법은 똑같네요 ㅋㅋㅋ
일단 가장 빨리 근사 값에 도달 하셔서 채택!
책상 앞에 붙어 있는 php 배열 함수 찾아봐도 해결법(?)이 안 나와서 그냥 해본건데
채택을 해버리시니... 감사합니다~ㅎㅎㅎ

뭔가 더 좋은 방법이 있지 않을까 하며 다른 댓글을 기대하고 있었는데 이렇게 넘어가는군요~^^
네 더좋은 방법이 있을것 같은데 급한 마음에 짜버렸습니다 ㅠ.ㅠ
어제 몸상태가 극악이여서 머리가 정지된상태였거든요 ㅠ.ㅠ
2014-11-25 (화) 18:38:57
Copy
$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        )) */

답변에 대한 댓글 1개

결국 오늘도 자답....
2014-11-25 (화) 17:54:39

이런식은 어떨까요?

$prices = array(

    'Tires'=>100,

    'Oil'=>10,

    'Spark Plugs'=>4

);

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

    echo "$product - $price";

}

답변에 대한 댓글 1개

범용으로 사용 하기 위하여 list는 제외 합니다 ㅎㅎㅎㅎ.... ㅠ.ㅠ;

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