Es spielt sich alles auf dem Client ab.
Nein! Du spielst das Lied auf dem Server. Im Browser ist nur das Echo zu hören.
<li>
<a href='#' id='-Artikel' class='dialog_link'>
<? echo $splMakro[id]?> - <? echo $splMakro[name] ?>
</a>
</li>
Korrigiere das zu:
Das ist aus Deinem Quelltext, ein wenig umformatiert. Und das ist - wenngleich höchst fehlerhaftes - so doch PHP.
<li>
<a href='#' id='-Artikel' class='dialog_link'>
<?php echo $splMakro['id']; ?> - <?php echo $splMakro['name']; ?>
</a>
</li>
... sonst fliegt es Dir irgendwann um die Ohren (short_tags, Strings ohne Begrenzer)
Mithin willst Du Daten mit aufwendigen Operationen in Javascript ermitteln, die Dir in PHP schon vorliegen. Das geht sehr viel einfacher, Wenn Du den JS-Array in PHP gleich mit erzeugen lässt.
Im Übrigen: id='-Artikel' - ergibt das nicht dutzende Links mit der ID '-Artikel'? Das ist ein HTML-Fehler.