2017-01-18 6 views
1

Ich möchte dieses Array Ausgang nennen:Wie soll ich diese Array-Ausgabe aufrufen?

[{"title":["OFFER 1, INCENT, US"],"link":["http:\/\/jump.ogtrk.net\/aff_c?aff_id=15447&offer_id=1930&aff_sub=MYID"]}][{"title":["OFFER 2, Free, INCENT, US"],"link":["http:\/\/jump.ogtrk.net\/aff_c?aff_id=15447&offer_id=2081&aff_sub=MYID"]}][{"title":["OFFER 3, Free, INCENT, US, 113M"],"link":["http:\/\/jump.ogtrk.net\/aff_c?aff_id=15447&offer_id=2993&aff_sub=MYID"]}][{"title":["OFFER 4"],"link":["http:\/\/jump.ogtrk.net\/aff_c?aff_id=15447&offer_id=3293&aff_sub=MYID"]}][{"title":["OFFER 5"],"link":["http:\/\/jump.ogtrk.net\/aff_c?aff_id=15447&offer_id=3295&aff_sub=MYID"]}] 

das Ergebnis dieses Codes ist:

foreach($json['offers'] as $offer) { 

$Myoffers = array(array("title"=> array($offer['name']), "link"=> array($offer['link']))); 

echo json_encode($Myoffers); 

ich dies tatsächlich verwenden Titel und Link via Javascript zu nennen:

<a target="_blank" href="'+t.link[0]+'">'+t.title[0]+"</a> 

aber nichts zeigt sich!

Antwort

1
t.title[0] 

soll

t[0].title[0] 

werden, da die Daten eine Reihe von Objekten.

[{}, {}...]; 

Wenn die Struktur wurde {{}, {}...}; stattdessen dann würde t.title[0] gearbeitet haben.

let data = [{ 
    "title": ["OFFER 1, INCENT, US"], 
    "link": ["http:\/\/j"] 
}]; 

var first = data[0]; // Gives access to the first element 
var allTitles = first.title; // Access to the title array 
var specificTitle = allTitles[i]; // i - to access a specific value 
var link = first.link[0]; // access the link for the first object 

aktualisieren

ich glaube, das Problem ist, dass Sie echo für jede Iteration der Schleife verwenden. Konstruieren Sie einfach ein neues Array und schieben Sie die Elemente für jede Iteration. Und echo ist es einmal mit der for-Schleife fertig.

// All offers 
$allOffers = array; 
//loop through the offers 
foreach($json['offers'] as $offer) { 

    //as an example we output the offer names 
    //echo $offer['link']; 
    $Myoffers = array("title"=> array($offer['name']), "link"=> array($offer['link'])); 
    $allOffers[] = $Myoffers; 
} 

// echo it after the foreach loop 

echo json_encode($allOffers); 
+0

Daten wie folgt aus: '[{[], []}] [{[], []}] [{[], []}]' – HASH717

+0

So geben Sie Daten wie folgt aus: [{[], []}, {[], []}, {[], []}, ......, {[], []}] – HASH717

+0

@ HASH717 Das ist die Antwort vom Server. Daher müssen Sie die Art und Weise ändern, wie Sie die Daten auf Serverebene erstellen, bevor Sie die Antwort senden. –

0

Ihr Array Ausgang ist keine gültige object.In der Ausgabe, wobei die Anordnung das Objekt enthält, wird mit einem einzelnen Objekt zu beenden und auch das Trennzeichen haben keine haben,
Sie müssen die Logik der Ausgangs Schöpfung korrigieren . Das Ergebnis sollte so sein

[ 
    { 
     "title": [ 
      "OFFER 1, INCENT, US" 
     ], 
     "link": [ 
      "http://jump.ogtrk.net/aff_c?aff_id=15447&offer_id=1930&aff_sub=MYID" 
     ] 
    }, 
    { 
     "title": [ 
      "OFFER 2, Free, INCENT, US" 
     ], 
     "link": [ 
      "http://jump.ogtrk.net/aff_c?aff_id=15447&offer_id=2081&aff_sub=MYID" 
     ] 
    }, 
    { 
     "title": [ 
      "OFFER 3, Free, INCENT, US, 113M" 
     ], 
     "link": [ 
      "http://jump.ogtrk.net/aff_c?aff_id=15447&offer_id=2993&aff_sub=MYID" 
     ] 
    }, 
    { 
     "title": [ 
      "OFFER 4" 
     ], 
     "link": [ 
      "http://jump.ogtrk.net/aff_c?aff_id=15447&offer_id=3293&aff_sub=MYID" 
     ] 
    }, 
    { 
     "title": [ 
      "OFFER 5" 
     ], 
     "link": [ 
      "http://jump.ogtrk.net/aff_c?aff_id=15447&offer_id=3295&aff_sub=MYID" 
     ] 
    } 
] 

Oder

[ 
     [ 
      { 
       "title": [ 
        "OFFER 1, INCENT, US" 
       ], 
       "link": [ 
        "http://jump.ogtrk.net/aff_c?aff_id=15447&offer_id=1930&aff_sub=MYID" 
       ] 
      } 
     ], 
     [ 
      { 
       "title": [ 
        "OFFER 2, Free, INCENT, US" 
       ], 
       "link": [ 
        "http://jump.ogtrk.net/aff_c?aff_id=15447&offer_id=2081&aff_sub=MYID" 
       ] 
      } 
     ], 
     [ 
      { 
       "title": [ 
        "OFFER 3, Free, INCENT, US, 113M" 
       ], 
       "link": [ 
        "http://jump.ogtrk.net/aff_c?aff_id=15447&offer_id=2993&aff_sub=MYID" 
       ] 
      } 
     ], 
     [ 
      { 
       "title": [ 
        "OFFER 4" 
       ], 
       "link": [ 
        "http://jump.ogtrk.net/aff_c?aff_id=15447&offer_id=3293&aff_sub=MYID" 
       ] 
      } 
     ], 
     [ 
      { 
       "title": [ 
        "OFFER 5" 
       ], 
       "link": [ 
        "http://jump.ogtrk.net/aff_c?aff_id=15447&offer_id=3295&aff_sub=MYID" 
       ] 
      } 
     ] 
    ] 

sobald das Objekt erstellt wird richtig können Sie darauf zugreifen möchten.

console.log(resp[0].title[0]) // as per first structure 

oder

console.log(resp[0][0].title[0]) // as per second structure 
+0

Wie zu entsprechen ct die Ausgabeerstellung, da Daten es nicht auf meinem Server ist? – HASH717

+0

@ HASH717 ist die Antwort vom Server als String? Wenn ja, kann Regex helfen – Deep

Verwandte Themen