php -> json 배열?? 로 만들기 채택완료
안녕하세요. PHP개발 중 처음보는 형태의 배열??의 형태로 json 값을 만들어 요청이 와서 개발 도중 힌트를 얻고자 질문글 올려봅니다.
현재 보내고 있는 json 값은
[{
"id" : "아이디"
"images": [
{
"imageUrl" : "이미지 주소"
}
],
... 중략
}]
입니다. 여기서 images 의 부분을
"images": {
"0": {
"imageUrl": "이미지 주소"
} },
요런 형태로 보내길 요청주시는데 해당 부분은 배열이 아닌 다른 형태로 보입니다.
요청온 수정 방향으로 값을 만들려면 어떻게 담아야할지 문의드립니다.
답변 3개
"images": [
{
"imageUrl" : "이미지 주소"
}
==
이 부분에 해당하는 소스를 올려 보세요.
요청하는 내용은 json배열 대신
인덱스 번호가 있는 object 형태네요.
답변에 대한 댓글 4개
이렇게 해 보세요.
for문안에
$review_array[$key]['images'] = new stdClass(); 를 선언해주고
$review_array[$key]['images']->imageUrl 이형태로 변경하니
"images":{"imageUrl" : "이미지 주소"} 이렇게 마지막 값만 저장되고 배열형태로 저장이 안됩니다.
해당 $review_array[$key]['images']->imageUrl 부분을 배열형태로 저장하려면 어떻게 해야할지 알 수 있을까요?
{
$review_array[$key]['id'] = $re_d['id'];
$image = explode(',',$re_d['image']);
if($image[0]!="")
{
$review_array[$key]['images']= new stdClass;
for($i=0; $i<count($image); $i++)
{
$review_array[$key]['images']->{"$i"}=array( 'imageUrl' => "이미지주소"};
$review_array[$key]['imageOrder'][$i] = (string)($i);
}
}
}
stdClass를 쓰는 것이 정답이네요.
댓글을 작성하려면 로그인이 필요합니다.
연속된 숫자일경우는 생략되어서 그런것이고
이 경우라면, 키가 굳이 필요 없을것입니다.
$arr = array(
'images' => array(
'0' => array(
'imageUrl' => '이미지주소'
),
'2' => array(
'imageUrl' => '이미지주소'
),
)
);
와 같이 연속적인게 아닐때는 키가 확인됩니다.
댓글을 작성하려면 로그인이 필요합니다.
images 라는 배열안에 여러개가 포함될 수 있는 다차원 배열 형태입니다.
array 로 보자면,
$images = array(
'0' => array(
'imageUrl' => '이미지주소'
),
'1' => array(
'imageUrl' => '이미지주소'
),
);
이런식으로 0,1,2,3,4...
답변에 대한 댓글 3개
[{
"id" : "아이디"
"images": [
{
"imageUrl" : "이미지 주소1"
},
{
"imageUrl" : "이미지 주소2"
},
],
이런 형태로 생성됩니다.
해당 값을 다시 json_decode 디버깅 하면, 키가 확인됩니다.
받는측에서는 decode 해서 처리 할테구요
댓글을 작성하려면 로그인이 필요합니다.
이 게시판은 회원만 글쓰기가 가능합니다. 로그인해 주세요.
답변을 작성하려면 로그인이 필요합니다.
로그인
배열을 만드는 소스는 아래와 같습니다. 전체적으로 object가 아닌 해당 images 부분만 object로 변환이 가능한가요?
[code]
foreach($data AS $key => $re_d)
{
$review_array[$key]['id'] = $re_d['id'];
$image = explode(',',$re_d['image']);
if($image[0]!="")
{
for($i=0; $i<count($image); $i++)
{
$review_array[$key]['images'][$i]['imageUrl'] = "이미지주소"
$review_array[$key]['imageOrder'][$i] = (string)($i);
}
}
}
[/code]
출력 예시 :
[{
"id" : "아이디",
"images" : {
"0" : {
"imageUrl" : "이미지 주소"
},
...
},
"imageOrder" : ["0"],
...
},
...
]