A novel programmable sonar array for mobile robots environment detecting was presented. Each sonar sensor in the array could be programmed to work as a sound emitter/receiver, or a sound receiver. When one sonar sensor was programmed to be a sound emitter/receiver, the others acted as sound receivers so that the array was always working in a single-emitter-multi-receiver situation during environment detecting. Benefiting from crosstalk, the system could get a group of distance data about the target point after each sound emitting. The redundant information was fused in a geometric interpolation way to estimate the accurate position of the target point. After all the sonar in the array emitted sound signals in turn, position estimates about target points in the area were obtained. The Euclidean distance between the estimates classified different target objects. Experiments show that the sonar array can locate one or more different targets after one detecting cycle, which is more efficient than conventional sonar systems.