1

サンプルコードがあります:

$json_encode = '{"OS":"Android","Title":"Galaxy"}';
$json_decode = json_decode($json_encode);
foreach($json_decode as $key => $value) {
   if($key == 'Title') {
       unset($key); 
   }
}
print_r(json_encode($json_decode));

しかし、結果はremove key='Title'そのjson文字列からは得られません、それを修正する方法は?

4

4 に答える 4

3

これらの余分なコード行は必要ありません。Titleインデックスが常に来る場合は、Titleインデックスを直接 設定解除できます。

$json_encode = '{"OS":"Android","Title":"Galaxy"}';
$json_decode = json_decode($json_encode);
unset($json_decode['Title']); 

PHP Array Unset関数の詳細については、以下のリンクを参照してください。単純な構文を間違えています。

PHP配列が設定されていません

于 2013-01-18T07:02:23.047 に答える
1

unsetステートメントに配列を含めるのを忘れました。そのはず:

unset($json_decode[$key]); 

実際、特定の例では、ループも必要ありません。値を直接設定解除できます。

また、関数から連想配列を取得するには、json_encode別のパラメーターを追加する必要があります。

$json_decode = json_decode($json_encode, true);
于 2013-01-18T07:01:56.340 に答える
0
$json_decode = json_decode($json_encode,TRUE);

「TRUE」が渡されない場合、json_decodeはオブジェクトを返します。

またunset($key)unset($json_decode[$key]);

于 2013-01-18T07:02:09.457 に答える
0
$json_encode = '{"OS":"Android","Title":"Galaxy"}';
$json_decode = json_decode($json_encode, true);
foreach ($json_decode as $key => $value) {
    if (in_array('Title', $value)) {
        unset($json_decode[$key]);
    }
}
$json_encode = json_encode($json_decode);
于 2013-01-18T07:08:44.233 に答える