2013-04-29 56 views
1

我想在如下的關聯數組中獲取數組的第一個鍵。我知道我可以使用key,但我讀過(在這個網站上),那就是效率不高。獲取關聯數組中的第一個鍵

所以我使用current(array_keys($data))

有沒有另外一種方法呢?當我使用current(array_keys($data))時,我會始終獲得第一把鑰匙嗎?這就是我害怕的事情。

我使用的是PHP 5.3.18。這是腳本開始的方式。

<?php 
$json = '{"user":"norman","city":"san jose","type":"editor"}'; 

$data = json_decode($json, true); 

echo current(array_keys($data)); 
//Output I need is "user" 
?> 
+2

效率在這種情況下真的沒有意義。如果你做了數十或數十萬個元素,可能會成爲一個問題,但之前沒有。做任何事情讓你的代碼更易讀 – 2013-04-29 12:33:47

+0

'array_keys($ data)'創建一個新的數組,指針設置爲第一個元素;所以調用'current()'就會始終返回第一個條目 – 2013-04-29 12:33:52

回答

1

echo current(array_keys($data));是一個漫長的過程只是用key

echo key($data); 

See Live Demo

$data = json_decode($json, true);將重置陣列......所以沒有必要再打電話reset

+0

鍵是保證給你第一個總是?在這種情況下,「用戶」 – Norman 2013-04-29 12:41:45

+0

'$ data = json_decode($ json,true);'將數組重置爲第一個元素yes ..其保證 – Baba 2013-04-29 12:42:24

1

用此代碼嘗試:

reset($data); 
$first_key = key($data);