【问题标题】:PHP get keys from array in objectPHP从对象中的数组中获取键
【发布时间】:2016-09-22 07:15:03
【问题描述】:

我有一个对象,我需要它的键列表。

现在我在 foreach 中这样做

foreach($obj as $key => $attribute){
  var_dump($key);
}

是否有一些 PHP 内置函数可用于获取对象键,如数组的 array_keys

追踪

对象(Solarium\QueryType\Select\Result\Document)#1383 (1) { ["fields":protected]=> 数组(31) { ["pdf_url"]=> 字符串(51) "xxxxxxxxxxxx" ["标题"]=> 字符串(150)......

【问题讨论】:

标签: php arrays object


【解决方案1】:
class A 
{
    private $a = 1;
    protected $b = 2;
    public $c = 3;
}

$object = new A();
$fields = get_object_vars($object);

但是通过这种方法,你只能从你的对象中获取 public 字段, 即

print_r($fields);

会输出

Array ( [c] => 3 ) 

【讨论】:

  • 我试过 get_object_vars 但它返回空数组。我现在看到我写错了问题,因为它是对象中的数组,并且 obj 中没有公共属性。
【解决方案2】:

问题是因为它是

对象中的数组。

我解决了这个问题

array_keys($obj->getFields())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多