2014-06-24 2 views
1

PHP 코드가 완벽 연관 배열을 얻을 수 있습니다 :어떻게 젠드의 fetchPairs()는 다음과 같이

$pairs = $read->select() 
    ->from($eavTable,array('value','entity_id')) 
    ->where('attribute_id=?',$ddId) 
    ->where('store_id=?','0') 
    ->distinct(true); 

return $read->fetchPairs($pairs); 

이 코드는 두 문자열과 정수 키와 PHP의 배열을 반환합니다. IE :

array(3) { 
    [40003]=> string(6) "246409" 
    ["rootcat"] => string(1) "2" 
    ["10000000888"]=> string(6) "246410" 
} 

값이 8 바이트보다 길거나 숫자가 아닌 경우 문자열이 반환됩니다. 젠드가 완전 연관 배열을 반환하도록 "지시 할 수 있습니까? 그래서 40003 또한 문자열로 처리됩니까? 데이터베이스에서이 값은 varchar로 표시됩니다.

답변

1

수 없습니다.

$array['40003'] = "246409"; 
$array['40003x'] = "246409"; 
var_dump($array); 

array(2) { 
    [40003]=> 
    string(6) "246409" 
    ["40003x"]=> 
    string(6) "246409" 
} 

: 인덱스 (PHP_INT_MAX까지) 정수로 정확히 표현하면 PHP에서, 그것은 당신이 따옴표로 캐릭터 라인 화를 시도하는 경우에도 정수 인덱스입니다 또는 유형 캐스트에 의해 :

foreach($array as $key => $value) { 
    $result[strval($key)] = $value; 
} 
var_dump($result); 

동일한 출력.

또는 다른 속임수에 의해

:

echo serialize($array); 
// a:1:{i:40003;s:6:"246409";} 

//change to string index 
$result = unserialize('a:1:{s:5:"40003";s:6:"246409";}'); 
var_dump($result); 

같은 출력.