2010-03-04 9 views
5
(I'm a beginner) 

मेरे स्क्रिप्ट नहीं बल्कि बड़े पैमाने पर मानकarray_diff और renumbering संख्यात्मक कुंजियों

$c = 0; 
$t = count($array); 

while ($c < $t) { 
    $blah = $array[$c]; 
    ++$c; 
} 

उपयोग करता है। लेकिन मैं बस एक ऐसी स्थिति में भाग गया जहां मुझे array_diff की भी आवश्यकता है और यह सब नरक में टूट जाता है क्योंकि अब संख्यात्मक कुंजी में अंतर होता है। मुझे पूरे स्थान पर Undefined offset त्रुटियां मिल रही हैं।

मैं किसी सरणी की संख्यात्मक कुंजी को कैसे रीसेट कर सकता हूं? सरणी में वस्तुओं का क्रम अप्रासंगिक है।

उत्तर

25

चाबियाँ रीसेट करने के लिए, आप array_values() उपयोग कर सकते हैं:

$array = array_values($array); 
7

आप सरणी की चाबी रीसेट करने की आवश्यकता नहीं है: आप जिस तरह से आप यह माध्यम से जा रहे बदलना होगा।

foreach ($array as $key => $value) { 
    // $key contains the index of the current element 
    // $value contains the value of the current element 
} 
+0

आपके लिए +1 क्योंकि मैं निश्चित रूप से उस ज्ञान का कहीं और उपयोग करूँगा। लेकिन चेक को बुलसेई मारने के लिए तातू जाना है। पास्कल धन्यवाद – Drew

+0

@ एंड्रयू: आपका स्वागत है :-) ;; हाँ, मुझे पता है कि मैं वास्तव में सवाल का जवाब नहीं दे रहा था, लेकिन मैंने सोचा कि यह वैसे भी उपयोगी होगा * (और मैं हमेशा सरणी तत्वों पर लूप के लिए foreach का उपयोग करें) * ;; और जैसा कि मैंने देखा कि एक और जवाब पहले से ही 'array_values' के बारे में बात करता है, मैंने इसे अपने अंदर नहीं रखा। –

+0

मैं आपको जवाब देने का समय लेने की सराहना करता हूं, मैं वास्तव में करता हूं। मैं अभी भी अपने पैरों को गीला कर रहा हूं और प्रोग्राम में सीखने के चरण में "मुझे वास्तव में किकस हथौड़ा मिला है" में पहचान है। तो फिर, अधिक उचित कोड डिज़ाइन की दिशा में सड़क को विस्तृत और उपयोगी धक्का के लिए धन्यवाद। – Drew

2

धन्यवाद Tatu:

बजाय एक while पाश का उपयोग करने और सूचकांक द्वारा सरणी elemnts तक पहुँचने का, तो आप एक foreach पाश है, जो केवल सरणी से आप तत्वों मिल जाएगा का उपयोग करना चाहिए।

$badArray = array_diff($allData, $myData); 

$string = implode(",",$badArray); 

$dump = explode(",",$string); 

$goodArray = $dump; 

काम किया:

lulz के लिए, मैं तुम्हारे साथ निम्नलिखित बेवकूफ हैक मैं जबकि एक समझदार जवाब के लिए इंतजार इस्तेमाल किया साझा करेंगे। मुझे सभी गंदा महसूस किया, लेकिन यह काम किया।

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