我有一個對象只有一個鍵和它的值。但我不知道訪問它的關鍵。沒有枚舉對象的情況下獲取密鑰的最有效方法是什麼?PHP:從對象中獲取一個密鑰
回答
如果你只是想在所有訪問值,你不需要密鑰(實際上屬性名):
$value = current((array)$object);
如果你真的想屬性名,試試這個:
$key = key((array)$object);
我有一個對象數組,每個對象都有一個屬性,我不知道屬性的名稱。我使用'foreach'循環遍歷數組,並且對於每個對象,我都需要鍵和值。我找到了這個解決方案,但是效率不是很低,因爲你每次將$對象轉換爲數組? (對不起,如果它太基本了,但我是一個新手。一個答案將不勝感激,因爲我不知道這是否明智或不)。 – Solace 2015-11-01 22:12:12
$array = array("foo" => "bar");
$keys = array_keys($array);
echo $keys[0];
// Output: foo
這真的適用於一個對象? 'stdClass :: __ set_state(array( 'tag1'=> 1, ))' – Pablo 2010-08-05 03:25:32
@Michael:我的錯誤,我以爲你試圖從數組中檢索密鑰。在這種情況下,您最好將對象轉換爲數組。請參閱@ thomasrutter的示例:http://stackoverflow.com/questions/3411495/php-get-a-single-key-from-object/3411520#3411520 – gpmcadam 2010-08-05 03:27:53
我最初誤導以及使用單詞「鍵」 ,這是一個數組術語... – deceze 2010-08-05 03:30:59
,就可以把對象數組像這樣:
$myarray = (array)$myobject;
然後,對於只有單一值的數組,這應該取鑰匙爲那個價值。
$value = key($myarray);
如果你願意,你可以在一行中做到這一點。當然,你也可以通過枚舉對象來實現,就像你在你的問題中提到的一樣。
要獲取價值,而不是關鍵,那麼:
$value = current($myarray);
- 1. PHP從對象中的數組中獲取密鑰
- 2. 如何從NSDictionary獲取密鑰對象?
- 3. 如何從數組中的單個對象獲取密鑰?
- 4. PHP從數組中獲取密鑰
- 5. 從RSA密鑰對中獲取參數
- 6. 從一個類中獲取一個密鑰到另一個類
- 7. Codeigniter獲取行對象的密鑰
- 8. Javascript獲取對象密鑰名稱
- 9. 如何從mongodb中的嵌套對象中獲取密鑰
- 10. 模板中的Django字典:從另一個對象屬性獲取密鑰
- 11. 從一個PHP對象獲取信息
- 12. 從Multiindex中獲取密鑰?
- 13. 從foreach循環中獲取一個php數組中的一個隨機密鑰
- 14. Java:從編碼密鑰獲取密鑰
- 15. 從Pandas中的GroupBy對象獲取所有密鑰
- 16. 從數組搜索中禁用密鑰並獲取下一個密鑰
- 17. 從Object.create獲取密鑰
- 18. 從JTextArea獲取密鑰
- 19. Android從preferencess.xml獲取密鑰
- 20. 從IgniteCache獲取密鑰
- 21. 從密鑰獲取字符
- 22. 從JavaScript獲取對象密鑰的簡單方法
- 23. indexeddb從對象存儲獲取所有密鑰
- 24. 從對象中篩選出一個密鑰用於發送
- 25. 如何從字符串獲取PKCS8 RSA私鑰/從XML獲取RSA密鑰對
- 26. 獲取一組密鑰?
- 27. 從HashMap中查找對象密鑰
- 28. 從嵌套對象中選擇密鑰
- 29. 從EVP_PKEY密鑰對提取公鑰?
- 30. 如何從EC公鑰對象中獲取PublicKey對象?
那麼你怎麼知道你有正確的鑰匙? – NullUserException 2010-08-05 03:20:45
你正在做'array_search'嗎? – 2010-08-05 03:26:06
我只是一個單一的json對象轉換爲php像'{「foo」:3}',我需要同時採取,鍵名和值。 – Pablo 2010-08-05 03:29:51