2017-03-26 3 views
0

내가 배열 (로 json_encode 싶은해야처럼 루프가 작동하지 않습니다)하지만이내가 JSON으로 배열을 인코딩하기 위해 노력하고 있지만

foreach($sub_ids as $sub_id){ 
    $query = "SELECT * FROM sub_main WHERE sub_main_id = ".$sub_id; 
    $result=mysqli_query($con, $query); 
    $row1= mysqli_fetch_assoc($result); 
    $name = (String)$sub_id; 
    $main["sub_heading".$sub_id]=$row1['sub_main_heading']; 
    $main["sub_content".$sub_id]=$row1['sub_main_content']; 
    $main["sub_images".$sub_id]=$row1['sub_main_images']; 
    $main["sub_id".$sub_id]=$row1['sub_main_ids'];} 
echo json_encode($main); 

Sub_ids에 작동하지 않는 것이 있습니다 1 2 3

난은 $ sub_id 제거시
print_r($sub_ids); 

Array ([0] => 1 [1] => 2 [2] => 3) 

하지만 작동을 보여 주며, 이는 이전의 루프 값을 덮어 버린다.

기본적 [ 'sub_heading'] $ 메인위한 아니지만 $ 메인 [ 'sub_heading'. #의 sub_id]

이 어레이를 생성하지만 JSON로 인코딩하지 않고 대해로 json_encode 중이다. 도와주세요.

+0

인 print_r ($의 sub_id)하고 여기에 표시되어야합니다. –

답변

0

나는 $sub_id을 개체라고 가정합니다. 따라서 $name=(String) $sub_id에 문자열로 변환하십시오. 그런 다음 솔루션은 $main["sub_heading".$name]$main["sub_heading".$sub_id]을 변경하고 모든 황금

$main["sub_heading".$name]=$row1['sub_main_heading']; 
$main["sub_content".$name]=$row1['sub_main_content']; 
$main["sub_images".$name]=$row1['sub_main_images']; 
$main["sub_id".$name]=$row1['sub_main_ids'];} 
+0

이 작동하지 않는다면, 나는 –

+0

을 게시하기 전에 그것을 시도했다. 그래서 print_r ($ main)을 루프 안으로 옮겨서 데이터가 어떻게 채워지는지 모니터링하고 왜 폭격을하는지 볼 수있다. 이것은 메모리 제한 문제가 될 수 있습니다 – Forbs

+0

그것은 다음의 배열을 생성하지만 json으로 인코딩하지 않습니다. 어떻게 json으로 인코딩합니까, 어떻게 바뀌나요? ** $ main [ 'this'] = $ row1 [ 'that'] ** 같은 배열을 만들면 배열을 인코딩하지만, ** $ main [ 'this'. $ sub_id] = $ row1 [ ' 그 '. $ sub_id] ** 루프에서 작동하지 않습니다 –

관련 문제