2013-02-12 3 views
2

PHP에서 데이터베이스 쿼리의 결과를 검색 할 때, 하나가 정수이고 하나가 열 이름 인 중복 된 값을받습니다. array_unique()는 배열을 정렬 할 때 대부분의 경우 문자열 앞에있는 숫자 키로 끝납니다. 이는 키가 유지된다는 의미입니다. 지금 당장은 숫자 키를 사용하여 배열에서 아무 것도 제거하는 함수를 사용합니다.하지만이 방법에 대해서는별로 신경 쓰지 않습니다. 누구든지이 일을하는 더 좋은 방법이 있습니까?텍스트 키를 선호하는 PHP 배열에서 중복 값을 제거하십시오.

+3

'DISTINCT SELECT ... 'SQL에 PHP에서/중복 제거 필터링보다 훨씬 더 효율적이 될 것입니다. 사기꾼들이 사실 이후에 그들을 제거하는 것이 아니라 오히려 발생하는 것을 방지하십시오. –

+0

문제는 중복 된 결과가 데이터베이스에서 반환되는 것이 아니라 PDO의 fetchAll() 함수가 각 항목을 인덱스와 컬럼 이름으로 두 번씩 두 번씩 반환한다는 것입니다. – omniuni

답변

2

데이터베이스에서 값을 검색하는 데 사용하는 명령을 변경하십시오 (예 : mysql_fetch_array 대신 mysql_fetch_assoc). 현재 어떤 API를 사용하든간에 원하는 것을 정확하게 수행 할 수있는 대안이 있습니다.

갱신 : PDO에서

당신이 작성합니다

$nonumindexes = $res->fetch(PDO::FETCH_ASSOC); 
+0

PDO를 사용하고 있으므로 fetchAll()을 사용하고 있으므로'$ query-> fetchAll()'과 비슷합니다. PDO에 해당하는 mysql_fetch_assoc가 있습니까? (미안하지만, PDO 문서를 탐색하기가 다소 어려웠습니다.) – omniuni

+0

@omniuni가 답변을 업데이트했습니다. – fdreger

+1

@omniuni 또는 여기에서와 같이 PDO :: FETCH_ASSOC을 전역 속성으로 설정하십시오. http://stackoverflow.com/questions/3893858/is-is-possible-to-set-a-default-pdo-fetch- 모드 – fdreger

1

을 당신이 결과를 검색 할 mysqli_fetch_array()를 사용하고 의심?

그렇다면 두 번째 매개 변수를 사용하면 결과를 연관 배열, 숫자 배열 또는 둘 모두로 검색 할 수 있습니다. 또는 mysqli_fetch_row 또는 mysqli_fetch_assoc을 사용하여 원하는 형식으로 결과를 얻을 수 있습니다.

http://www.php.net/manual/en/mysqli-result.fetch-array.php

관련 문제