2016-08-01 14 views
3

ich ein JSON-Array haben wie blies:, wie diese Art von JSON-Array analysieren

{ 
    "0": { 
     "kind": "mammal", 
     "name": "Pussy the Cat", 
     "weight": "12kg", 
     "age": "5" 
    }, 
    "1": { 
     "kind": "mammal", 
     "name": "Roxy the Dog", 
     "weight": "25kg", 
     "age": "8" 
    }, 
    "2": { 
     "kind": "fish", 
     "name": "Piranha the Fish", 
     "weight": "1kg", 
     "age": "1" 
    }, 
    "3": { 
     "kind": "bird", 
     "name": "Einstein the Parrot", 
     "weight": "0.5kg", 
     "age": "4" 
    } 
} 

i entfernt ein Element 'Piranha die Fish' Mit (UNSET) Mein json Code zu blasen geändert:

{ 
    "0": { 
     "kind": "mammal", 
     "name": "Pussy the Cat", 
     "weight": "12kg", 
     "age": "5" 
    }, 
    "1": { 
     "kind": "mammal", 
     "name": "Roxy the Dog", 
     "weight": "25kg", 
     "age": "8" 
    }, 
    "3": { 
     "kind": "bird", 
     "name": "Einstein the Parrot", 
     "weight": "0.5kg", 
     "age": "4" 
    } 
} 

wenn ich Element der Zähler des Elements ändern zu 0,1,3 entfernen, so jetzt kann ich nicht vollen Zugang in meine json Elemente haben

ich mit diesem Code Echo Wert wollen:

for ($i = 0; $i < $JsonCount - 1; $i++) { 
    echo "Name :"; 
    echo $json_cod[$i]['name']; 
    echo "<br/>"; 
    echo "Age :"; 
    echo $json_cod[$i]['age']; 
    echo "<br/>"; 
} 

heraus gesetzt:

Name :Pussy the Cat 
Age :5 
Name :Roxy the Dog 
Age :8 
+0

http://php.net/manual/en/control-structures.foreach.php – wazelin

+1

Struktur Ihre Daten zu tun, sieht nicht aus wie ein JSON-Array. Sind Sie sicher, dass Sie das analysieren möchten? –

+1

http://php.net/manual/en/function.array-values.php –

Antwort

2

Versuchen foreach verwenden.

foreach ($json_cod as $item) { 
    echo "Name :";echo $item['name'];echo "<br/>"; 
    echo "Age :";echo $item['age'];echo "<br/>"; 
} 
0

Wenn Sie Ihren Code verwenden, um Echo, nachdem $newarray=array_values($oldarray) Wert von Array verwenden Löschen des Array neu indizieren.

0

Das ist, weil unset() den Wert zusammen mit dem Schlüssel/Index aus dem Array entfernen und es so belassen, wie es ist, d. H. Es den Schlüssel/Index nicht neu anordnet.

Wenn Sie den Schlüssel neu anordnen möchten, verwenden Sie stattdessen array_slice(). Siehe array_slice. und du wirst bekommen, was du willst. Sie werden in der Lage sein

for($i=0; $i <$JsonCount-1 ; $i++) 
{ 
    echo "Name :";echo $json_cod[$i]['name'];echo "<br/>"; 
    echo "Age :";echo $json_cod[$i]['age'];echo "<br/>"; 
}