如何获取php对象中的键数

时间:2014-12-09 11:24:36

标签: php arrays object

我有一个关键用户的数组对象,我尝试获取此键的大小,sizeOf函数返回6.但如果我的对象中有多个关键用户,则sizeOf返回关键用户的数量

这是我的对象的例子:

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)

2 个答案:

答案 0 :(得分:0)

尝试 -

echo count(array_keys((array)$yourObject));

对于多个用户 -

$count = 0;
foreach((array)$yourObject as $value) {
    $count++;
}
echo $count;

答案 1 :(得分:0)

没有计算对象中元素的函数。

有一个黑客: 您可以强制转换对象作为数组:

$arr = (array)$obj;
$count = count($arr);

如果您正在使用STD类对象,也可以使用以下内容:

$arr = get_object_vars($some_std_class_object);
$count = count($arr);

我不明白OP的含义是“用户密钥的数量”,但是一旦获得数组,就可以轻松检索此数组中任何元素的数量。