从PHP中的关联数组中获取JSON数据类型

时间:2013-03-25 03:07:18

标签: php arrays json types

大家晚上!

所以,我有一个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"
    )
));

关键"设置"表示设置字符串或布尔值的值。 另一个关键是" push"附加到数组,或"删除"删除字符串或数组。

我想知道的是,如何在PHP中获取当前数组部分的数据类型?

意思是,我怎样才能让PHP说出来,"好的,字段'用户名'是一个字符串,' ip_array'是一个数组"?

我不希望能够设置" SUPPOSED的字符串值只是一个布尔值,或者是一个数组。

有没有办法在PHP中获取JSON数据类型?

非常感谢。

2 个答案:

答案 0 :(得分:2)

gettype()怎么样? Gettype()将返回任何变量的数据类型。 http://php.net/manual/en/function.gettype.php

答案 1 :(得分: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);
}
?>