come hai detto tu stessa utilizzi un altro array(didascalieArray) facendo in modo che la didascalia dell'immagine che si trova nell'array imageArray alla posizione i-esima si trovi nell'array didascalieArray alla posizione i-esima. Quando cambi immagine visualizzi la rispettiva didascalia in un div con id='didascalia'

Codice PHP:

<script language="JavaScript">

<!--

var 
interval 5000;
var 
random_display 0;
var 
imageDir "portraits/";
var 
imageNum 0;

imageArray = new Array();
didascalieArray = new Array();
imageArray[imageNum++] = new imageItem(imageDir "01_stappert_rp.jpg");
didascalieArray[imageNum] = "didascalia immagine 1";
imageArray[imageNum++] = new imageItem(imageDir "02_stappert_rp2.jpg");
didascalieArray[imageNum] = "didascalia immagine 2";
imageArray[imageNum++] = new imageItem(imageDir "03_stappert_mk1.jpg");
didascalieArray[imageNum] = "didascalia immagine 3";
imageArray[imageNum++] = new imageItem(imageDir "04_stappert_cwe.jpg");
didascalieArray[imageNum] = "didascalia immagine 4";

var 
totalImages imageArray.length;

function 
imageItem(image_location) {
this.image_item = new Image();
this.image_item.src image_location;
}

function 
get_ImageItemLocation(imageObj) {
return(
imageObj.image_item.src)
}

function 
getNextImage() {
if (
random_display) {
imageNum randNum(0totalImages-1);
}

else {
imageNum = (imageNum+1) % totalImages;
}
var 
new_image get_ImageItemLocation(imageArray[imageNum]);

document.getElementById("didascalia").innerHTML didascalieArray[imageNum];
return(
new_image);
}

function 
getPrevImage() {
if(
imageNum-0) {
imageNum totalImages-1;
}
else
imageNum = (imageNum-1) % totalImages;
var 
new_image get_ImageItemLocation(imageArray[imageNum]);
document.getElementById("didascalia").innerHTML didascalieArray[imageNum];
return(
new_image);
}

function 
prevImage(place) {
var 
new_image getPrevImage();
document[place].src new_image;
}

function 
switchImage(place) {
var 
new_image getNextImage();
document[place].src new_image;
var 
recur_call "switchImage('"+place+"')";
timerID setTimeout(recur_callinterval);
}

// -->