1
私の.jsonファイルのレコードをid
で削除するのは苦労しています。 だから、私のオリジナルJSONは次のようになります。PHPで.jsonファイルからIDで削除
[["{\"id\":1474753066818,\"name\":\"dd\",\"brand\":\"dd\",\"price\":\"12\"}"],["{\"id\":1474753069035,\"name\":\"dd3\",\"brand\":\"dd\",\"price\":\"12\"}"]]
そして、これは私のPHPです:
<?php
$string = file_get_contents("products.json");
//var_dump($string);
$input = json_decode($string, true);
$output = array();
//here starts the problem
foreach($input as $element) {
if($_GET['data'] != $element[0]["id"]){ //add in array if id doesn't match
$output[] = $element;
}
}
$final = json_encode($output);
$f = @fopen("products.json", "r+");
if ($f !== false) {
ftruncate($f, 0);
fclose($f);
}
file_put_contents("products.json", $final);
>
基本的に私の問題は、私はこのようなものを反復していますforeach
で起動:
array(2) { [0]=> array(1) { [0]=> string(58) "{"id":1474753066818,"name":"dd","brand":"dd","price":"12"}" } [1]=> array(1) { [0]=> string(59) "{"id":1474753069035,"name":"dd3","brand":"dd","price":"12"}" } }
明らかにここで私はforeachでやろうとしているようにid
にアクセスできません。全部が文字列です。
この文字列を配列に変換してIDを比較し、このポストの最初に表示されたオリジナルのJSON形式にエンコードし直すことはできません。
助けてください!
JSONが無効です。 –