Ciao, usa sort al posto di ksort che ordina per valorei e non per chiavi dell'array se e' questo che ti serve.
Tu modifichi l'ordine per chiavi con ksort ma probabilmente ti mantiene la stessa chiave e nel ciclo for ovviamente avendo come indice da 1 in su va cmq a prendere quella chiave ricercandola nell array.

Se vuoi cmq al posto di fare tutto il ciclo per comporre la query basterebbe usare IN() in sql tipo:

...where nomecampo IN('1','2','3')... cerca tutti i record dove nomecampo contiene uno dei valori fra parentesi