>  기사  >  데이터 베이스  >  `mysql_fetch_array`를 사용할 때 foreach 루프에 두 배의 데이터가 표시되는 이유는 무엇입니까?

`mysql_fetch_array`를 사용할 때 foreach 루프에 두 배의 데이터가 표시되는 이유는 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-10-27 20:25:30828검색

Why does my foreach loop display doubled data when using `mysql_fetch_array`?

배열의 두 배 결과(mysql_fetch_array)

주어진 코드에서는 mysql_fetch_array 작동 방식으로 인해 foreach 루프가 두 배의 데이터를 표시하는 문제가 발생합니다. . 기본적으로 결과 배열의 각 요소에 숫자 인덱스와 연관 인덱스를 모두 할당합니다. 이 효과는 인덱스(0, 1, 2 등)와 해당 키(id, Department_id, name 등)가 모두 나타나는 print_r 출력에서 ​​관찰할 수 있습니다.

이 문제를 해결하려면, mysql_fetch_array 함수 호출에서 원하는 인덱스 유형을 지정할 수 있습니다. MYSQL_NUM을 두 번째 매개변수로 전달하면 숫자 키만으로 배열을 검색할 수 있습니다. 또는 MYSQL_ASSOC는 연관 키만 있는 배열을 반환합니다.

<code class="php">// Get numeric keys only
$query_result_array = mysql_fetch_array($query_result, MYSQL_NUM);

// Get associative keys only
$query_result_array = mysql_fetch_array($query_result, MYSQL_ASSOC);</code>

또한 구체적으로 숫자 배열 또는 연관 배열을 각각 반환하는 mysql_fetch_row 및 mysql_fetch_assoc 함수를 사용할 수도 있습니다.

<code class="php">// Get numeric keys only
$query_result_array = mysql_fetch_row($query_result);

// Get associative keys only
$query_result_array = mysql_fetch_assoc($query_result);</code>

이러한 옵션을 활용하면 foreach 루프에서 데이터 중복을 방지하고 결과 배열에 필요한 인덱스와 값이 포함되도록 할 수 있습니다.

위 내용은 `mysql_fetch_array`를 사용할 때 foreach 루프에 두 배의 데이터가 표시되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.