2016-06-08 4 views
1

beibehalten Ich habe eine Funktion zum Löschen einer PID innerhalb einer JSON-Zeichenfolge. Diese Funktion funktioniert einwandfrei, aber wenn ich im JSON-Format die resultierende Zeichenfolge erneut codiere (unter Verwendung von json_encode), geht das ursprüngliche JSON-Format verloren.Wie Original JSON-Format nach dem Löschen der ID mit PHP

So behalten Sie dieses Originalformat bei. Das ist die Frage. Ich brauche Hilfe, es zu tun.

Dies ist der Code:

function deletePID($idToRemove, $dataBase) { 
    if (!empty($dataBase)) { 
     $dataArray = json_decode($dataBase, true); 
     if (is_array($dataArray)) { 
      if (is_numeric($idToRemove)) { 
       for ($i = 0; $i < count($dataArray['cP']); $i++) { 
        $thisChannel = $dataArray['cP'][$i]['cID']; 
        if ($idToRemove == $thisChannel) { 
         unset($dataArray['cP'][$i]); 
        } 
       } 
       $thisJason = json_encode($dataArray); 
       return $thisJason; 
      } 
     } 
    } 
} 

$database = '{"cP":[{"cID":"1","PID":"30144"},{"cID":"2","PID":"30147"},{"cID":"3","PID":"30150"}]}'; 

$pidToDelete = 2; 

echo deletePID($pidToDelete, $database); 

Ausgang ist:

{"cP":{"0":{"cID":"1","PID":"30144"},"2":{"cID":"3","PID":"30150"}}} 

Statt:

{"cP":[{"cID":"1","PID":"30144"},{"cID":"3","PID":"30150"}]} 

Antwort

1

Sie müssen aufeinanderfolgende Indizes haben es auf diese Weise kodieren. Verwenden Sie array_values(), um neu zu indizieren:

$thisJason = json_encode(array_values($dataArray)); 
Verwandte Themen