如何获取php对象中的键数
我有一个带有一个key用户的arrays对象,我试图得到这个key的大小,sizeOf函数return 6。但是如果我的对象中有多个密钥用户,那么sizeOf返回密钥用户的数量 以下是我的对象的一个示例:如何获取php对象中的键数,php,arrays,object,Php,Arrays,Object,我有一个带有一个key用户的arrays对象,我试图得到这个key的大小,sizeOf函数return 6。但是如果我的对象中有多个密钥用户,那么sizeOf返回密钥用户的数量 以下是我的对象的一个示例: object(Context)[347] protected 'values' => array (size=23) [...] 'user' => array (size=6) 'nom' => array (size=2)
object(Context)[347]
protected 'values' =>
array (size=23)
[...]
'user' =>
array (size=6)
'nom' =>
array (size=2)
'@content' => string 'foo' (length=6)
'@attributes' =>
'email' => string 'foon@yahoo.fr' (length=24)
[...]
获取对象中的用户密钥数的最佳方法是什么
谢谢
编辑:
有了多个用户,我得到了这个
object(Context)[347]
protected 'values' =>
array (size=23)
[...]
'user' =>
array (size=2)
0 =>
array (size=6)
'nom' =>
array (size=2)
'@content' => string 'foo' (length=6)
'email' => string 'foo@yahoo.fr' (length=24)
1 =>
array (size=6)
'nom' =>
array (size=2)
'@content' => string 'bar' (length=6)
'email' => string 'bar@yahoo.fr' (length=24)
试试-
echo count(array_keys((array)$yourObject));
对于多个用户-
$count = 0;
foreach((array)$yourObject as $value) {
$count++;
}
echo $count;
没有计算对象中元素的函数 有一个黑客: 您可以将对象强制转换为数组:
$arr = (array)$obj;
$count = count($arr);
如果使用的是STD类对象,也可以使用以下选项:
$arr = get_object_vars($some_std_class_object);
$count = count($arr);
我不明白OP的“用户密钥数”是什么意思,但是一旦你得到数组,你就可以很容易地检索这个数组中任何元素的计数。如果我只有一个用户密钥,那么计数返回6如果你有更多的
用户
,那么在foreach
中计数。我应该这样测试:变量转储(数组密钥)((array)$context,'user');
我确实测试了它。它返回一个空数组。它似乎无法导航到我的context
对象…添加一个有多个用户的示例。