Array-Schlüssel in ColdFusion-Struktur
Was ist die richtige syntax für das erstellen eines Schlüssels innerhalb einer ColdFusion-Struktur, die ein array? Vorzugsweise in der cfscript-tags.
Geben eine klarere Vorstellung von dem, was ich versuche zu tun, hier ist, was ich dachte, es könnte sein:
StructInsert(account[i], "child[numChildren]", z);
wo "Kind" war eigentlich ein array und numChildren war ein Zähler in einer Schleife.
Offensichtlich ist dies nicht funktioniert. Es gibt mir eine Fehlermeldung, dass der Schlüssel "Kind[numChildren]" existiert bereits.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sagen Sie das "Konto" - Struktur namens "Kind", die ein array. Dies macht keinen Sinn. Wenn "Kind" ist ein array, es kann nicht sein, eine Struktur. Wenn es eine Struktur, es kann nicht ein array sein. Ein array enthalten kann, die Strukturen, und Strukturen enthalten kann, die arrays.
Einer struct ist eine Karte oder ein hash, in anderen Worten, es besteht aus name-Wert-Paare. Ein array ist eine Menge oder eine Liste von Werten. Sie können Schleife über Sie, oder den Zugang zu Ihnen über Ihren numerischen index.
Let ' s machen Konto eine Struktur und dem Kind ein array.
Konto ist eine Struktur, so dass Sie verwenden können, struct Funktionen (structKeyExists, structInsert).
Konto.Kind ist ein array, so können Sie verwenden Sie die array-Funktionen (arrayAppend, etc.). Konto.Kind, die ein array enthalten kann, so ziemlich jeden beliebigen Wert in einem Eintrag, auch für komplexe Werte. Machen wir also Konto.Kind ein array von structs.
sagen wir, z in deinem Beispiel ist eine Struktur, die wie folgt aussieht:
Könnte man hinzufügen, diese zu berücksichtigen.Kind so:
Oder könnte man es machen, direkt über die index-wie so:
NUN. Können sagen, Sie wollen, halten Konto eine Struktur, aber Sie wollen haben 1 Schlüssel für jedes Kind in der Struktur, nicht ein array verwenden. Sie können dies tun, indem Sie über einen dynamischen Schlüssel, wie diese:
FYI, structInsert ist in der Regel eine unnötige Funktion.
Ich bin mir nicht ganz klar, was Sie zu tun versuchen - aber wenn Sie wollte ein Kind-element ist ein array innerhalb einer Struktur, hier ist was Sie tun würde:
StructInsert nimmt die folgenden Argumente an: (struct, Schlüssel, Wert). Sehen Sie diese Adobe-Dokumentation für mehr info: http://help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-7f02.html
Wenn Sie möchten, dass es variabel ist, entfernen Sie die Anführungszeichen, da sonst der Schlüssel ist, dass string.
Obwohl es schwer ist zu bestimmen, ob das, was du versuchst zu sagen ist:
vs
Oder etwas anderes.
Update:
Ok, also basierend auf Ihren Kommentar, möchten Sie wahrscheinlich diese:
Werden innerhalb einer Schleife mit der numChildren-index, irgendwo, nach dem Sie die folgenden Aussagen:
(Sie können auch
Account['Child']
stattAccount.Child
notation.)