2009-07-02 11 views
25

मुझे MySQL से प्राप्त सरणी को एक सरणी [PHP] में प्राप्त करने की आवश्यकता है, यहां मुझे जो मिला है:

$players = array(); 

while ($homePlayerRow = mysql_fetch_array($homePlayerResult)) { 
    $players[] = $homePlayerRow['player_id']; 
} 

क्या यह ऐसा करने का एकमात्र तरीका है? भी, निम्न तेज़/बेहतर है?

$players = array(); 

while ($homePlayerRow = mysql_fetch_array($homePlayerResult)) { 
    array_push($players, $homePlayerRow['player_id']); 
} 

अग्रिम में धन्यवाद

+0

का आनंद लें यदि आप केवल सहयोगी कुंजी (player_id) तक पहुंच रहे हैं तो 'mysql_fetch_assoc' का उपयोग करना सबसे अच्छा है। आप 'mysql_fetch_row' का उपयोग कर सकते हैं तो' $ homePlayerRow [0] ', जो थोड़ा तेज़ है। – DisgruntledGoat

उत्तर

16

यू चलाने और देखते हैं कि array_push कुछ मामले

http://snipplr.com/view/759/speed-test-arraypush-vs-array/

में धीमी है अपने कोड चला सकते हैं।

+0

बस उस लिंक का परीक्षण किया और यह सही है, अब कोई संकेत नहीं है। :) –

24

निर्भर करता है ...

प्रलेखन कहते हैं,

"आप array_push का उपयोग करते हैं() सरणी यह ​​बेहतर है के लिए एक तत्व जोड़ने के लिए $ array का उपयोग करें [] = क्योंकि इस तरह से फ़ंक्शन को कॉल करने का कोई ओवरहेड नहीं होता है। "

स्रोत: http://us2.php.net/array_push

तो यह कि आप कितना डेटा किसी विशेष क्षण में है कि सरणी में रटना करना चाहते हैं निर्भर करता है। इसके अतिरिक्त, एक फॉल-बैक है, अगर सरणी-संदर्भित नहीं होता है जब आप इसे array_push का उपयोग करते हुए कॉल करते हैं, तो आप एक त्रुटि को टक्कर देंगे। यदि आप $ array [] का उपयोग करते हैं, तो सरणी आपके लिए बनाई जाएगी।

+0

अंत में मैंने सरणी के साथ जाने का फैसला किया [] = ... क्योंकि कुछ चरण –

+2

पर सरणी बहुत बड़ी हो सकती है, मुझे विश्वास है कि '$ arr = array() 'के साथ' $ arr = array()' के साथ) एक सरणी घोषित करना तेज़ है एआर [] = एक्स'। यह भी उपयोगी है अगर आपके '$ arr []' कथन कुछ नियंत्रण तर्क के अंदर हैं - आपके पास अभी भी एक चर है, जिसमें कोई तत्व नहीं है। – DisgruntledGoat

संबंधित मुद्दे