Zweidimensionales Array von VB

si031006

Mitglied
Hi!

Mein Problem ist folgendes:
Ich bekomme ein zweidimensionales Array von einem VB Programm. Dieses wird als Variant Datentyp geliefert. Unter Perl konnte ich das ganze wunderbar auswerten mit folgender Zeile:

my @keys=@{$result->[0]};
Wobei @keys jetzt das element der ersten Dimension ist (denke mal das heißt so). Kann ich diese Zeile irgendwie auch in PHP einbauen? Wenn ich das auf diese Art versuche gibts leider nur immer eine fehlermeldung vom Typ:
Variant has no properties

Danke
 
Danke mal, ich hab das mal probiert und bekomme jetzt folgende Fehlermeldung:
Can only handle single dimension variant arrays (this array has 2)

Und vielleicht sollte ich auch eine genauere Beschreibung angeben:
Also ich versuche hier ein Programm webtauglich zu machen, wobei der einzige Zugang über die COM-Schnittstelle von Windows funktioniert. Alles klappt eigentlich auch ganz gut, allerdings gibt es da einen Befehl, der eben ein zweidimensionales Array zurückgibt. Der Aufruf sieht ungefähr so aus:
$result=$ProgrammObject->QueryFetch(1,$test,3,.....);
Der Typ von $result ist ein Variant und stellt das zweidimensionale Array dar. Ich hab jetzt deinen Code folgendermaßen eingefügt:
foreach ($result as $key => $variable) {
echo "dein Array wird ausgegeben mit $variable";
}
Dabei kriege ich oben genannte Fehlermeldung. Ich denke mal es liegt an meiner falschen Änderung des Befehls, aber ich weiß ehrlich gesagt nicht ganz wie ich diesen Befehl jetzt anpassen soll für meine Verhältnisse...

mfg
 
Ich kenne mich zwar mit Variant nicht aus, hört sich aber recht interessant an und hab folgendes gefunden: Variant Manual auf php.net , vielleicht ist da was brauchbares dabei, ich denke die COM-Funktionen dürften auch recht hilfreich sein.
 
Danke, hab ich auch schon mal durchgelesen. Von dort kam ich auf den Perl Code, aber bei PHP funkt das irgendwie nicht so. Leider hab ich auch keine Idee wie ich das umschreiben könnte. Im Moment lös ich das so, das ein Externes Programm aufgerufen wird (mit exec) und die Ausgabe (also das Array) wieder gespeichert wird. Schöner wärs jedenfalls wenn es gleich funktionieren würde in PHP (vor allem weil die Scripte erheblich schneller laufen als mit MODPerl)...
 
das ist jetzt nicht getestet - da ich mich mit vb auch nicht so gut auskenne

aber versuch es mal so

PHP:
foreach ($_REQUEST['vb variable'] as $erste_dimension => $ergebnis  {
       foreach ($ergebins as $zweite_dimension => $ergebniss2) {

echo $.erste_dimension." ".$zweite_dimension.'<br />';
}      }
 
Naja, vielleicht um etwas deutlicher zu werden:
$result->[0] funktioniert unter PHP nicht. PHP meint das Variant hat keine Properties. Irgendwie müsste ich das schon mal in PHP zum laufen kriegen, leider weiss ich nicht wie...

Somit beschränkt sich das Problem eigentlich schon darauf, das ich nicht wirklich weiss wie man in PHP auf die erste bzw. zweite Dimension überhaupt kommt...
 
Hab ich schon probiert, bekomme dabei aber die Meldung:
Can only handle single dimension variant arrays (this array has 2)

Leider weiss ich nicht wirklich was ich dagegen machen kann. Beim Aufruf mit $_REQUEST['vb variable'][0] geht gleich gar nichts mehr (denke mal die Zeiger wandern hierbei irgendwo ins Nirvana)....
 
auch schon mit dem Zähler für die zweite Dimension getestet?

Komisch das von Hand
PHP:
$_REQUEST['vb variable'][0]
nicht geht...
 
Zurück