나는 PDO :: FETCH_UNIQUE 플래그와 함께 다음 PDO 문을 사용하여 고유 한 행 ID로 인덱싱 된 결과 배열을 만듭니다.PHP PDO :: FETCH_UNIQUE를 사용하여 결과 배열에 고유 인덱스를 유지할 수 있습니까?
<?php
$statement = $conn->prepare("
SELECT
unique_id, field_1, field_2, field_3
FROM
table
WHERE
field_1 = 'foo'
AND field_2 = ?
ORDER BY
field_3
");
if($statement->execute(array($field_2_value)))
{
$resultArray = $statement->fetchAll(PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE);
}
?>
$ resultArray :
Array
(
[123] => Array
(
[field_1] => foo
[field_2] => someVal
[field_3] => bar
)
[234] => Array
(
[field_1] => foo
[field_2] => someVal
[field_3] => car
)
[345] => Array
(
[field_1] => foo
[field_2] => someVal
[field_3] => dog
)
)
는 그대로 배열 인덱스 모두를 유지하고이 같은 행 데이터의 고유 한 행 ID를 유지할 수있는 방법이 있나요 :
Array
(
[123] => Array
(
[unique_id] => 123
[field_1] => foo
[field_2] => someVal
[field_3] => bar
)
[234] => Array
(
[unique_id] => 234
[field_1] => foo
[field_2] => someVal
[field_3] => car
)
[345] => Array
(
[unique_id] => 345
[field_1] => foo
[field_2] => someVal
[field_3] => dog
)
)
가
보조 루프를 사용하여이 작업을 수행 할 수 있음을 알았지 만 fetchAll()
의 옵션 인 경우 훨씬 더 깨끗하게 느껴질 것입니다.
_foreach_ 루프를 사용하고 각 _key_와 _key_ _를 각각 활용하는 방법을 찾고 있습니까? –
@SamOnela 예, 저는 현재 결과 배열이이 코드베이스에서 여러 가지 다른 방식으로 사용되는 호환성 기능을 유지하기 위해 키와 값을 모두 유지해야하는 레거시 함수를 다시 작성하고 있습니다. – bbeckford