Isso é possível como uma matriz associativa.
Tudo que você tem a fazer é mudar
$array[] = $row
para
$array[$row['ID']] = $row
Você precisa ter certeza de que o
ID
coluna em seu banco de dados é única para que a matriz associativa não substitua as chaves (nesse caso, apenas o último registro com IDs duplicados permaneceria) EDITAR (19-11-2015)
Também sobre o seu 'loop mysql' - é apenas um PHP normal
while
loop que percorre os registros fornecidos por mysql_*
ou mysqli_*
funções. Você está percorrendo o resultado retornado da execução de uma instrução sql no banco de dados que apenas busca e formata linhas para você de uma determinada maneira. MySQL e MySQLi são duas coisas diferentes, mas o SQL que eles usam não é diferente (exceto talvez instruções preparadas?). Aprender SQL é o que você vai fazer e para executá-lo você vai usar
mysqli_*
de agora em diante desde mysql_*
funções estão obsoleta
Eu só queria apontar essas coisas para esclarecer algumas confusões que você já pode ter ou terá no futuro. :)
Para mais leitura sobre mysqli leia o php.net manual , é tudo um pouco complexo se você está apenas começando, mas tudo bem - entenda o que puder e trabalhe para entender o que não puder.
EDIÇÃO 2 (19-11-2015)
os índices em seu
$row
array são diferenciam maiúsculas de minúsculas
então ID
e id
são algo completamente diferente. um irá somar a um undefined index
erro. Percebi em sua saída que o
id
key é na verdade minúscula então eu tentaria mudar para isso. Boa sorte!