2016-11-09 2 views
1

나는 데이터베이스 쿼리에서 배열이 사용하지 않고 연관 배열에 키 - 값 쌍의 배열을 변환열 이름

Array ( 
    [21] => "Alphabet" 
    [16] => "Elementary" 
    [19] => "Preschool" 
    [20] => "Secondary" 
) 

단을, 키 이름을 사용할 수 없습니다. 내 컨텍스트에서 원본 데이터의 키를 제어 할 수 없으므로 첫 번째 및 두 번째 열로 참조해야합니다. 나는 예를 들어, 서로 다른 키 이름과 데이터를 동일한 알고리즘을 사용해야합니다

Array (
    [0] => Array ([unknown_id] => 21 [random] => "Alphabet") 
    [1] => Array ([unknown_id] => 16 [random] => "Elementary") 
    [2] => Array ([unknown_id] => 19 [random] => "Preschool") 
    [3] => Array ([unknown_id] => 20 [random] => "Secondary") 
) 

을 문제는 Convert array of key-value pairs into associative array과 매우 유사하지만했다 [0] [1] 키 위해, 나는 텍스트 키가 여전히 배열의 첫 번째 항목과 두 번째 항목을 참조해야합니다.

+0

최악의 경우 최악의 경우 배열을 반복하고 수동으로 수행하십시오. – Daniel

답변

3

당신은 이런 식으로 그것을 할 수 사용

$indexed = array_map('array_values', $data); 
$res = array_combine(array_column($indexed, 0), array_column($indexed, 1)); 

또는 array_column의 3 번째 인수로 :

$res = array_column(array_map('array_values', $data), 1, 0); 
+0

완벽. 감사! – LStarky

2

실제로이 작업을 수행 할 수있는 내장 함수가 있습니다. 특정 열을 기준으로 인덱스 배열을 세 번째 매개 변수를 사용하여

$result = array_column($array, 'div_name', 'div_id'); 

PHP> = 5.5.0 array_column()에 필요한 또는 PHP Implementation of array_column()

+0

키 이름을 사용할 수 없음을 기억하십시오. 이 솔루션은 작동하지 않습니다. – LStarky