PHP-递归迭代json对象
我需要在PHP中迭代对象,并对该对象中的每个值应用特定函数。 这些对象是绝对任意的。它们可以包括变量、其他对象、数组、对象数组等等 有没有一种通用的方法可以做到这一点?如果是,如何进行 用法示例: RESTful API,接收JSON格式的请求。 json_decode()在请求体上执行并创建任意对象。 例如,现在最好在进一步验证之前对该对象中的每个值执行mysqli_real_escape_string() 对象示例:PHP-递归迭代json对象,php,json,object,Php,Json,Object,我需要在PHP中迭代对象,并对该对象中的每个值应用特定函数。 这些对象是绝对任意的。它们可以包括变量、其他对象、数组、对象数组等等 有没有一种通用的方法可以做到这一点?如果是,如何进行 用法示例: RESTful API,接收JSON格式的请求。 json_decode()在请求体上执行并创建任意对象。 例如,现在最好在进一步验证之前对该对象中的每个值执行mysqli_real_escape_string() 对象示例: { "_id": "551a78c500eed4fa853870fc"
{
"_id": "551a78c500eed4fa853870fc",
"index": 0,
"guid": "f35a0b22-05b3-4f07-a3b5-1a319a663200",
"isActive": false,
"balance": "$3,312.76",
"age": 33,
"name": "Wolf Oconnor",
"gender": "male",
"company": "CHORIZON",
"email": "wolfoconnor@chorizon.com",
"phone": "+1 (958) 479-2837",
"address": "696 Moore Street, Coaldale, Kansas, 9597",
"registered": "2015-01-20T03:39:28 -02:00",
"latitude": 15.764928,
"longitude": -125.084813,
"tags": [
"id",
"nulla",
"tempor",
"do",
"nulla",
"laboris",
"consequat"
],
"friends": [
{
"id": 0,
"name": "Casey Dominguez"
},
{
"id": 1,
"name": "Morton Rich"
},
{
"id": 2,
"name": "Marla Parsons"
}
],
"greeting": "Hello, Wolf Oconnor! You have 3 unread messages."
}
然后像这样使用它:
$decodedObject = RecursiveStuff($decodedObject, function($value)
{
return escapesomething($value); // do something with value here
});
您只需传递函数名,如下所示:
$decodedObject = RecursiveStuff($decodedObject, 'mysqli_real_escape_string');
如果只需要遍历数据,而不需要对其第二个参数重新编码,
$assoc
将使其返回关联数组。从那以后,你所追求的应该很好
$data = json_decode($source_object);
$success = array_walk_recursive($data, "my_validate");
function my_validate($value, $key){
//Do validation.
}
你能给我们举个例子吗?这样肯定会更容易。对象太长,无法在注释框中填充:(基本上,它们非常大,我需要应用一些通用的验证。如果您在SQL代码中使用绑定变量,那么使用
mysqli\u real\u escape\u string()
将是不必要的。您会发现错误:…foreach($value as&$prop){$prop=RecursiveStuff($prop,$callable);
。。。
$data = json_decode($source_object);
$success = array_walk_recursive($data, "my_validate");
function my_validate($value, $key){
//Do validation.
}