2017-11-17 6 views
-2

PHP 응용 프로그램에서 다차원 배열을 가져 와서 for 루프에서 값을 추출해야합니다. 쿼리는 항상 9 개의 행을 반환합니다. 나는이 프로그램을 실행할 때PHP의 다차원 배열에서 값에 액세스

$w = mysqli_query($con,"SELECT age, percent FROM drive03_2_monthly_income WHERE birthYear='1956' AND (age LIKE '%.00%') ORDER BY birthYear,age "); 

$row = mysqli_fetch_array($w); 
    for($n=0;$n<9;$n++) { 
     echo $row[$n]->age." -- ".$row[$n]->percent."<br />"; 
     } 

, 나는 내가 w $에서 원하는 데이터를 얻을 수 있지만 갖는 문제 루프에서 값을 추출.

답변

0

여기 있습니다.

<?php 
$w = mysqli_query($con,"SELECT age, percent FROM drive03_2_monthly_income WHERE birthYear='1956' AND (age LIKE '%.00%') ORDER BY birthYear,age "); 
while ($row = mysqli_fetch_array($w, MYSQLI_ASSOC)) 
{ 
    echo $row['age']->age." -- ".$row['percent']->percent."<br />"; 
} 
?> 
-1

문제는 mysqli_fetch_array()이 단일 행을 얻는 것입니다. 다음 단계에 대한 몇 가지 옵션이 있습니다.

옵션 1 - 루프에서 mysqli_fetch_array()를 사용 : 이것은 사용 mysqli_fetch_all()

foreach(mysqli_fetch_all($w, MYSQLI_ASSOC) as $row){ 
    // Do something with your associative row data 
    echo $row['age']; 
} 

- : -

while($row = mysqli_fetch_object($w)){ 
    // Do something with your object row data 
    echo $row->name; 
} 

옵션 3 루프에서 사용 mysqli_fetch_object()

while($row = mysqli_fetch_array($w)){ 
    // Do something with your associative row data 
    echo $row['age']; 
} 

옵션 2 설명서에 인용 된대로 권장되지 않습니다. mysqli_fetch_all()가 단일 단계 배열로 모든 행을 반환 같이

, 일부 유사한 기능보다 만 로부터 한 번에 하나 개의 행을 리턴 같은 mysqli_fetch_array()를, 메모리를 소비 할 수있다 결과 집합입니다. 또한 결과 세트를 반복해야하는 경우 에 성능에 더 영향을주는 루핑 구문이 필요합니다. 이러한 이유로 mysqli_fetch_all()은 페치 된 결과 집합이 처리를 위해 다른 계층 으로 전송되는 상황에서만 사용해야합니다.