2008-11-12 20 views
15

मैं php में अत्यंत नया हूँ बनाने के लिए छोरों का उपयोग करना है और मैं अगर किसी को मेरी मदद कर सकता या तो का उपयोग सोच रहा था एक के लिए या किसी सरणी लंबाई में 10 तत्वों को बनाने के पाश जबकिसरणियों

उत्तर

23
$array = array(); 
$array2 = array(); 

// for example 
for ($i = 0; $i < 10; ++$i) { 
    $array[] = 'new element'; 
} 

// while example 
while (count($array2) < 10) { 
    $array2[] = 'new element'; 
} 

print "For: ".count($array)."<br />"; 
print "While: ".count($array2)."<br />"; 
+0

$ सरणी के माध्यम से एक सरणी में कुंजी को विशेषता [] = ...; बेहद धीमी है। वर्ग ब्रेसिज़ के बीच 'के लिए' से $ i होने के लायक है। यदि आप बड़े डेटासेट का श्रेय दे रहे हैं तो $ सरणी [$ i] आपको $ array [] की तुलना में प्रदर्शन में अच्छा बढ़ावा देगा। –

+0

वैकल्पिक रूप से कोई array_push() फ़ंक्शन –

+1

@I GIVE का उपयोग कर सकता है ... मुझे यह गलत लगता है, मैंने 750,000 पुनरावृत्तियों के आधार पर एक परीक्षण चलाया और $ सरणी [$ i] से तेज़ होने के लिए $ array [] पाया सभी मामलों में (अंतर दिया गया था एक सेकंड के हजारों का मामला) – Owen

10

को एक अलग दृष्टिकोण for पाश होगा ...

$array = array(); 

foreach(range(0, 9) as $i) { 
    $array[] = 'new element'; 
} 

print_r($array); // to see the contents 

मैं इस विधि का उपयोग, मुझे लगता है यह नज़र करने के लिए आसान से अधिक देखने के लिए कि वह क्या करता है।

strager ने बताया कि यह आपको पढ़ने में आसान हो सकता है या नहीं भी हो सकता है। वह यह भी बताता है कि एक अस्थायी सरणी बनाई गई है, और इस प्रकार लूप के लिए सामान्य से थोड़ा महंगा है। यह ओवरहेड न्यूनतम है, इसलिए मुझे इस तरह से ऐसा करने में कोई फर्क नहीं पड़ता। आप जो लागू करते हैं वह आपके ऊपर है।

+0

यदि आपके पास पाइथन में पृष्ठभूमि है तो पढ़ना आसान होगा, लेकिन यदि आप सी-शैली भाषा पृष्ठभूमि से हैं (वाक्यविन्यास में, उदाहरण के लिए सी ++ , जावा, सी #) यह आपके लिए अजीब लगेगा। साथ ही, कोड एक अस्थायी सरणी बनाने, अक्षम दिखता है। – strager

+0

ठीक है, एक संपादन जगह में है! – alex

+0

फ़ोरैच लूप और एक रेंज स्टेटमेंट का उपयोग करने के साथ दो अक्षमताएं हैं जहां लूप के लिए एक साधारण पर्याप्त होगा, दूसरा सरणी_पश विधि का उपयोग कर रहा है जो सरणी [] कथन से 200% धीमी है (http://stackoverflow.com/प्रश्न/559,844/क्या-बेहतर के लिए उपयोग में php-सरणी-मूल्य या सरणी-pusharray-मूल्य) – ejectamenta

4

थोड़ा आसान हो सकता है अभी शुरुआत के लिए समझने के लिए ...

<?php 


// for loop 
for ($i = 0; $i < 10; $i++) { 

$myArray[$i] = "This is element ".$i." in the array"; 

echo $myArray[$i]; 

} 


//while loop 
$x = 0; 

while ($x < 10) { 

$someArray[$x] = "This is element ".$x." in the array"; 

echo $someArray[$x]; 

$x++; 
} 

?> 
2

मुझे यकीन है कि वास्तव में क्या उद्देश्य यहाँ है नहीं कर रहा हूँ। PHP के सरणी गतिशील होते हैं, जिसका अर्थ है कि आप बनाए जाने के बाद उन्हें तत्व जोड़ना जारी रख सकते हैं - यानी, आपको शुरुआत में सरणी की लंबाई को परिभाषित करने की आवश्यकता नहीं है। मुझे लगता है कि आप एक सरणी में 10 मनमानी चीजें रखना चाहते हैं।

पाश के लिए

:

$arr = array(); 
for ($i = 0; $i < 10; ++$i) { 
    $arr[] = "Element $i"; 
} 

जबकि पाश:

$arr = array(); 
$i = 10; 
while (--$i) { 
    $arr[] = "Element $i"; 
} 

यह परिभाषित करते हुए:

$arr = array("Element 1", "Element 2", "Element 3" ...); 

या यदि आपने अभी अक्षरों या संख्याओं की एक श्रृंखला चाहता था:

$arr = range(0, 9); 
$arr = range('a', 'j'); 
1

सबसे आसान तरीका array_fill() उपयोग करने के लिए है:

$array = array_fill(0, 10, 'Hello World'); 

लेकिन आपको पता होना चाहिए कि PHP सरणियों आकार दिया जा सकता है जब भी आप वैसे भी चाहते हैं, मैं एक निश्चित आकार की एक सरणी बनाने के लिए आवश्यक नहीं किया है।

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