2017-05-24 3 views
3

Meine json wie folgt aus:Wie kann ich Json-Element nach Sub-Json-Wert entfernen?

[{"id": 1, "name": "xkCT0QUAK7alZkYkbrLUfxoYyn9aXMh2kyCZeYFW.jpeg"}, 
{"id": 2, "name": "9Tg1QLJGiHPC39KP20iOgy3cYQSXOllJTEBGPcF7.jpeg"}, 
{"id": 3, "name": "fWEfhpRkfy44lqC3Ro1etJKmOOkMXnLJLT4ncS6x.png"}] 

Ich habe variable $id

wenn $id = 2, es json zu entfernen, die id = 2

wenn $id = 3 haben, wird es json zu entfernen, die id = 3

haben Zum Beispiel wird es JSON entfernen, die id = 2

haben

Die json oben so sein:

[{"id": 1, "name": "xkCT0QUAK7alZkYkbrLUfxoYyn9aXMh2kyCZeYFW.jpeg"}, 
{"id": 2, "name": "fWEfhpRkfy44lqC3Ro1etJKmOOkMXnLJLT4ncS6x.png"}] 

Wenn gelöscht, wird seine ID

zurück

Wie kann ich es tun sortiert werden?

Antwort

2

Probe Input:

$json='[{"id": 1, "name": "xkCT0QUAK7alZkYkbrLUfxoYyn9aXMh2kyCZeYFW.jpeg"}, 
{"id": 2, "name": "9Tg1QLJGiHPC39KP20iOgy3cYQSXOllJTEBGPcF7.jpeg"}, 
{"id": 3, "name": "fWEfhpRkfy44lqC3Ro1etJKmOOkMXnLJLT4ncS6x.png"}]'; 
$id=2; 

Methode (Demo):

$new_id=0; 
$input=json_decode($json,true); 
foreach($input as $i=>$a){ 
    if($a['id']==$id){ 
     unset($input[$i]);     // remove the desired subarray 
    }else{ 
     $input[$i]['id']=++$new_id;   // set correct id value (and increment $new_id) 
    } 
} 

$input=json_encode(array_values($input)); // re-index first-level keys & json encode 
var_export($input); 

Ausgang:

'[{"id":1,"name":"xkCT0QUAK7alZkYkbrLUfxoYyn9aXMh2kyCZeYFW.jpeg"}, 
    {"id":2,"name":"fWEfhpRkfy44lqC3Ro1etJKmOOkMXnLJLT4ncS6x.png"}]' 
+0

Vielen Dank für Sie –

+0

Ok helfen. Ich habe es gelöscht –

Verwandte Themen