2009-06-30 13 views
49

स्टैकलैंड में हाय आउट करें। मैं सोच रहा था कि क्या कोई फ़ंक्शन या एक एसोसिएटिव सरणी को अनुक्रमित सरणी में बदलने का एक आसान तरीका था।एक एसोसिएटिव सरणी को एक अनुक्रमित सरणी में बदलें/एक Zend_Table_Row_Abstract को गैर-सहयोगी

विस्तृत करने के लिए, मैं ज़ेंड फ्रेमवर्क का उपयोग कर रहा हूं, और मुझे अपनी साइट में एक बिंदु मिला है जहां मैं एसक्यूएल टेबल की एक एसोसिएटिव सरणी के रूप में एक पंक्ति लेता हूं। मैंने इसे जेएसओएन में प्रतिबिंबित करके जावास्क्रिप्ट में पास कर दिया है। हालांकि, मैंने देखा है कि मैं फ़ायरबग में अपने डेटाबेस के कॉलम के नाम देख सकता हूं। बीत रहा है बाहरी लोगों को अपनी तालिकाओं और स्तंभों के नाम जानना एक बड़ा सुरक्षा नहीं-नहीं, इसलिए मैं

SQLarray[user_id] 
SQLarray[block_id] 
SQLarray[b_price] etc. 

से

SQLarray[0] 
SQLarray[1] 
SQLarray[2] etc. 

करने के लिए इसे बदलना चाहते हैं है वहाँ यह करने के लिए एक अच्छा तरीका है ?

यह एक Zend_Table_Abstract-> fetchAll() एक गैर-सहयोगी सरणी वापस करने में सक्षम होने के लिए भी काम करेगा, लेकिन मुझे नहीं लगता कि यह संभव है। आपकी सहायताके लिए धन्यवाद!

उत्तर

123

शुद्ध PHP ठीक है?

$array = array_values($array); 

Source

+0

प्रारंभिक सरणी odbc_fetch_array से बनाया गया था, तो मैं array_values ​​पर भरोसा हमेशा resultset के उचित कॉलम-क्रम का सम्मान करने के कर सकते हैं? ऐसा लगता है जैसे मैं कर सकता हूँ। –

3

परिभाषित समारोह

function array_default_key($array) { 
    $arrayTemp = array(); 
    $i = 0; 
    foreach ($array as $key => $val) { 
     $arrayTemp[$i] = $val; 
     $i++; 
    } 
    return $arrayTemp; 
} 

एक पैरामीटर के रूप साहचर्य सरणी दर्रा और यह सरणी के डिफ़ॉल्ट सूचकांक में बदल जाएगा। उदाहरण के लिए: फ़ंक्शन पर कॉल करने के बाद हमारे पास Array('2014-04-30'=>43,'2014-04-29'=>41) है, सरणी Array(0=>43,1=>41) होगी।

+1

क्या आप अपना कोड समस्या हल करने के बारे में कोई विवरण या संक्षिप्त विवरण प्रदान कर सकते हैं? – Illidanek

+0

बस सहयोगी सरणी को पैरामीटर के रूप में पास करें और यह सरणी के डिफ़ॉल्ट अनुक्रमणिका में कनवर्ट करें। उदाहरण के लिए: हमारे पास ऐरे ('2014-04-30' => 43, '2014-04-29' => 41) कॉल फ़ंक्शन सरणी के बाद ऐरे (0 => 43,1 => 41) होगी –

-1

यदि आप इनबिल्ट PHP फ़ंक्शन का उपयोग नहीं करना चाहते हैं, तो आप कोड के इस साधारण टुकड़े का उपयोग कर सकते हैं।

$input_array;   // This is your input array 
$output_array = [];  // This is where your output will be stored. 
foreach ($input_array as $k => $v){ 
    array_push($output_array, $v); 
} 
print_r($output_array); 
संबंधित मुद्दे