ich glaube da liegt ein Missverständnis vor ;-)
Der Trick ist, du erstellst das Array einmal komplett, schreibst daraus eine PHP-Datei und inkludierst die beim anderen Script. PHP läuft nicht wie ein Applikationsserver oder eine andere Desktopanwendung oder ähnliches ab, spricht: Jedes Script stellt eine in sich geschlossene "Anwendung" dar. Es hat gewisse Schnittstellen (eben POST/GET etc.), aber an sich ist es in sich geschlossen. Nach einem Durchlauf gehen auch alle darin enthaltenen Variablen flöten.
Wie ich mir das bei dir vorgestellt habe (ich muss allerdings sagen das ich in deinem Fall einen sinnvollen Querycache vom DBMS eher für angebracht halte) sieht ungefähr so aus:
Script das die Datei mit dem Array erstellt.
PHP:
<?php
// die Funktion holt gar schröcklich viele Daten aus der Datenbank und speichert es in $array
$array = getDataFromDatabase();
// diese Funktion speichert das Array in der Datei
saveArrayToFile($array, 'arrayCache.php');
die Datei sieht dann ungefähr so aus:
PHP:
<?php
// arrayCache
$array['1'] = 'Badelatschen';
// ... hier folgen weitere Einträge
$array['25653244653543'] = 'Socken';
?>
so, und dann guckst du im anderen Script ob die Cache Datei da ist, und inkludierst sie ...
PHP:
<?php
if( is_readable('arrayCache.php') )
{
include('arrayCache.php');
}
?>
das ist natürlich nur ein sehr grob umzeichnetes Konzept. Die genaue Implementierung muss dann natürlich noch überdacht werden und man sollte vor allem auf die atomare Bearbeitung der Datei achten, sonst kann es schnell zu Fehlern kommen, Stichwort Race Conditions.
Aber wie gesagt, ich würde eher gucken ob man nicht an anderer Stelle was drehen kann, von der Datenbank-Seite her.