2016-04-08 5 views
-4
mit PHP entfernen

wie kann ich die folgenden JSON-Formatwie „[]“ in einem json Ausgang

[ 
    [{ 
     "product_id": 1, 
     "name": "Cotton Shirt", 
     "sku": "abcdef" 
    }], 
    [{ 
     "product_id": 2, 
     "name": "Silk Shirt", 
     "sku": "csfddef" 
    }] 
] 

mögen unter

[{ 
    "product_id": 1, 
    "name": "Cotton Shirt", 
    "sku": "abcdef" 
}, { 
    "product_id": 2, 
    "name": "Silk Shirt", 
    "sku": "csfddef" 
}] 

konvertieren Ich möchte nur die zusätzliche eckige Klammer entfernen .wie es möglich ist,

+0

Dies ist ein Wörterbuch in einer Anordnung eines Arrays. also während Sie analysieren, sollten Sie es entsprechend holen. –

+0

das, was ist die Lösung für oben @ Minaz – Karna

Antwort

0

substr() Verwenden von dem ersten Zeichen zu dem zweiten letzten Zeichen zurückzukehren:

$input = '[[{"product_id":1,"name":"Cotton Shirt","sku":"abcdef"}]]'; 
$result = substr($input, 1, -1); 

// $result: [{"product_id":1,"name":"Cotton Shirt","sku":"abcdef"}] 

Wenn die JSON ist bereits ein Array ist, dann nur das erste Element erhalten:

$result = json_encode($input[0]); 

// $result: [{"product_id":1,"name":"Cotton Shirt","sku":"abcdef"}] 
+0

es Fehler zeigt wie unten – Karna

+0

substr() erwartet Parameter 1 Zeichenfolge zu sein, da Array – Karna

+0

ich meine Frage einfach aktualisieren – Karna

0

Try this:

<?php 

$json = '[[{"product_id":1,"name":"Cotton Shirt","sku":"abcdef"}],[{"product_id":2,"name":"Silk Shirt","sku":"csfddef"}]]'; 

$arrayData = json_decode($json, true); 

$newData = array_map(function($data) {return $data[0];}, $arrayData); 
$json = json_encode($newData); 

print_r($json); 

Ergebnis ist:

[{"product_id":1,"name":"Cotton Shirt","sku":"abcdef"},{"product_id":2,"name":"Silk Shirt","sku":"csfddef"}] 

Es funktioniert, Überprüfen Sie hier: CLICK!

+0

seine Shows ein Fehler wie unten – Karna

+0

json_decode() erwartet Parameter 1 bis Be String, Array gegeben – Karna

+0

mein op so – Karna

0

Wenn Sie nicht in der Lage sind vorher die interne Anordnung von dem ersten ein zu holen, versuchen Sie den folgenden Ansatz json_decode und json_encode Funktionen:

$arr = json_decode('[[{"product_id":1,"name":"Cotton Shirt","sku":"abcdef"}]]')[0]; 
print_r(json_encode($arr)); // "[{"product_id":1,"name":"Cotton Shirt","sku":"abcdef"}]"