Как создать ассоциативный массив из более чем двух столбцов, извлеченных из запроса SQL в PHP? - PullRequest
1 голос
/ 11 июля 2019

Я пытаюсь заполнить ассоциативный массив значениями из выборочного SQL-запроса, Я использовал это раньше только для двух столбцов:

while($row = odbc_fetch_array($res1)){
    $key_words[utf8_encode($row['word'])] = utf8_encode($row['replace']);
}

Выходы:

Array ( 
    [à] => a 
    [á] => a 
    [â] => a 
    [ã] => a 
    [ä] => a 
    [ç] => c 
    [é] => e 
    [è] => e 
    [ê] => e
)

Но теперь мне нужно более двух столбцов. как то так:

$array = array( subject => key => group  subject => key => group )

Возможно ли это?

РЕДАКТИРОВАТЬ 2
Этот код:

while($row = odbc_fetch_array($res)){
    $replace[] = $row;
}

выводит этот результат:

Array ( 
    [0] => Array ( 
        [ID] => 1 
        [mot] => � 
        [remplace] => a 
        [Type] => lettre 
    ) 
    [1] => Array ( 
        [ID] => 2 
        [mot] => � 
        [remplace] => a 
        [Type] => lettre 
    ) 
    [2] => Array ( 
        [ID] => 3 
        [mot] => � 
        [remplace] => a 
        [Type] => lettre 
    )
)

Я хочу получить тот же результат, но не для всех столбцов, только 3.

Пример:

Array ( 
    [0] => Array ( 
        [mot] => � 
        [remplace] => a 
        [Type] => lettre 
    ) 
    [1] => Array ( 
        [mot] => � 
        [remplace] => a 
        [Type] => lettre 
    ) 
    [2] => Array (  
        [mot] => � 
        [remplace] => a 
        [Type] => lettre 
    )
)

1 Ответ

2 голосов
/ 11 июля 2019

Есть несколько способов получить этот результат.

Использование SQL

Поскольку вы, похоже, извлекаете данные из базы данных, лучше всего было бы, если бы вы просто выбрали нужные столбцы.

Если у вас есть это сегодня:

SELECT * FROM ...

Измените его на:

SELECT mot, remplace, Type FROM ...

Теперь $row будет просто содержать эти три значения, и вы можете использовать свой код:

while($row = odbc_fetch_array($res)){
    $replace[] = $row;
}

Использование PHP

Если вы по какой-либо причине не хотите ограничивать извлекаемые столбцы, вы можете просто использовать нужные столбцы с помощью PHP внутри цикла:

while($row = odbc_fetch_array($res)){
    $replace[] = [
         'mot'      => $row['mot'],
         'remplace' => $row['remplace'],
         'Type'     => $row['Type'],
    ];
}

Оба вышеуказанных решения должны дать вам желаемый результат.

...