0

みんなの夕べ!

だから、私は私と一緒にJSON文字列を持っています...

{"username":"87db3983285d395ca0af9f","password":"f4f0bb1533ef5034ce6b0a8a7c49a43b","email":"xxx@gmail.com","hnum":3,"splicenum":22,"reg_ip":"71.126.122.217","reg_date":1364175245,"cur_ip":"71.126.122.217","ip_array":["71.126.122.217"],"logins":[],"about":""}

そして、json_decode()を使用して、この文字列をPHPの連想配列にデコードします。

私がやっていることは、PHPで連想配列に変換されたJSONオブジェクトをクエリするための単一の関数を作成しようとしています。この機能のために、私は現在、フィールドの編集/更新に取り組んでいます。

例:

json_edit(array(
    "set"=>array(
        "email"=>"yyy@yahoo.com"
    )
));

キー「set」は、文字列またはブール値を設定することを意味します。もう1つのキーは、配列に追加する場合は「push」、文字列または配列を削除する場合は「delete」です。

私が疑問に思っているのは、PHPで現在の配列部分のデータ型を取得するにはどうすればよいですか?

つまり、PHPに「OK、フィールド'username'は文字列で、'ip_array'は配列です」と言わせるにはどうすればよいですか?

文字列値を、単なるブール値または配列であると想定される値に「設定」できるようにしたくありません。

PHPでJSONデータ型を取得する方法はありますか?

よろしくお願いします。

4

2 に答える 2

2

gettype()はどうですか。Gettype()は、任意の変数のデータ型を返します。http://php.net/manual/en/function.gettype.php

于 2013-03-25T05:36:38.993 に答える
1

私はこのようなものを使用します。

<?php
function json_edit($json, $changes = array()){

    $decoded = json_decode($json);

    foreach($changes as $action => $data){
        swith($action){
            case 'SET':

                foreach($data as $key => $value){
                    $decoded[$key] = $value;
                }

            break;

            case 'DELETE' :

            break;
            default;

        }
    }

    return json_encode($decoded);
}
?>
于 2013-03-25T03:41:37.613 に答える