2015-04-23 97 views
2

我有一個包含未知數量屬性的對象,有沒有什麼辦法可以在PHP中獲取此對象的第N個屬性名稱?如何訪問第N個對象屬性名稱?

我期待它是類似於下面的代碼的東西,只是這隻有在一個陣列工作,而不是對象:

$key = array_keys($obj)[$i]; 

假設下面的輸入:

$obj = stdClass Object 
     (
      [ID] => 1 
      [name] => Mary Jane 
      [count] => 420 
     ) 
$i = 1; 

我期望輸出爲:

ID 
+0

$ obj不是一個數組,所以你爲什麼期望數組函數能夠像這樣工作?對象不是數組,並且沒有鍵,它們具有屬性 –

+0

是的我知道這個代碼不起作用,我在問是否有等價的方法 –

+0

將對象轉換爲數組'$ obj =(array) $ obj;' –

回答

5

投下你的對象數組第一:

$key = array_keys((array)$obj)[$i]; 
2

http://php.net/manual/en/function.get-object-vars.php

您可以使用 get_object_vars()

+0

感謝您的輸入,但我嘗試了兩種方法建議和鑄造對象似乎是更實際的方式來解決我的特定問題。使用這個函數意味着我也需要嵌套array_keys函數,就像:'array_keys(get_object_vars($ a))[$ i];' –

0

用foreach就試了一下:

foreach ($obj as $attr) 
{ 
    var_dump($attr); 
} 

它的工作原理,但你需要一個計數器根據迭代次數遞減然後中斷。

編輯:get_object_vars更好,斯里。