我正在使用PHP arrays
和objects
。我和他们一起工作已经有一段时间了。但是,我遇到了一个问题,这可能是一个非常简单的解决方案。
我在一个函数中有一个变量$products
,它在调用时接收值。我正在尝试计算变量中的对象以查看其中有多少产品。我尝试了简单的count($products)
和count((array)$products)
功能,但它不起作用。我知道这不是计算物体的最佳方法。
有没有办法计算它们?
object(stdClass)#46 (3) {
["0"]=>
object(stdClass)#47 (1) {
["productid"]=>
string(2) "15"
}
["1"]=>
object(stdClass)#48 (1) {
["productid"]=>
string(2) "16"
}
["2"]=>
object(stdClass)#48 (1) {
["productid"]=>
string(2) "26"
}
}
我需要这个来返回3
object(stdClass)#20 (1) {
["productid"]=>
string(2) "21"
}
我需要这个来返回1
答案 0 :(得分:4)
计数功能用于
阵列 从实现可数接口的类派生的对象 stdClass既不是这些。完成你所追求的更简单/最快捷的方法是
$count = count(get_object_vars($products));
这使用PHP的get_object_vars函数,该函数将对象的属性作为数组返回。然后,您可以将此数组与PHP的计数功能一起使用。
答案 1 :(得分:0)
您可以执行与
类似的操作count(get_object_vars($obj));
但是将stdClass用作数组似乎有点奇怪。你为什么这样做?
答案 2 :(得分:0)
试试这个: $ count = sizeof(get_obj_vars($ products))
此处user.time=loginDetailsAfterSaving.time;
函数将user['time']=loginDetailsAfterSaving.time;
变量转换为数组,user.toJSON().time=loginDetailsAfterSaving.time;
函数计算数组的大小并将其存储到变量 let jwtHelper=new JwtHelper();
let userDetails= jwtHelper.decodeToken(localStorage.getItem("token"));
console.log(userDetails);
答案 3 :(得分:0)
从您的示例中,为此使用对象似乎是一种非常臃肿的方法。使用简单的数组会更容易,更快。
此:
object(stdClass)#46 (3) {
["0"]=>
object(stdClass)#47 (1) {
["productid"]=>
string(2) "15"
}
}
可能就是这样:
array(0 => 15);
甚至这个:
array(15);
您的示例似乎只是存储了产品ID,因此您不需要严格需要“productid”的密钥
您是否需要使用对象?