2012-01-06 15 views
22

संभव डुप्लिकेट में एक आयामी सरणी के लिए दो आयामी सरणी परिवर्तित करने के लिए:
Turning multidimensional array into one-dimensional arrayकैसे PHP5

मैं एक सरणी के इस प्रकार है

Array 
(
    [0] => Array 
     (
      [0] => 88868 
     ) 

    [1] => Array 
     (
      [0] => 88867 
     ) 

    [2] => Array 
     (
      [0] => 88869 
     ) 

    [3] => Array 
     (
      [0] => 88870 
     ) 

) 

मैं करने की जरूरत है इसे एक आयामी सरणी में परिवर्तित करें। मैं उसे कैसे कर सकता हूँ?

इस तरह उदाहरण के लिए ..

Array 
(
    [0] => 88868 

    [1] => 88867 

    [2] => 88869 

    [3] => 88870 

) 

किसी भी php कार्यक्षमता में बनाया इस सरणी रूपांतरण के लिए उपलब्ध है?

उत्तर

80

अपने सीमित उपयोग के मामले के लिए, यह यह करूँगा:

$oneDimensionalArray = array_map('current', $twoDimensionalArray); 

यह subarrays इस के लिए कई प्रविष्टियों है जब के लिए और अधिक सामान्यीकृत किया जा सकता है:

$oneDimensionalArray = call_user_func_array('array_merge', $twoDimensionalArray); 
+0

मुझे समझ नहीं आता 'वर्तमान'। मैं डॉक्टर php कॉल करने योग्य $ कॉलबैक पर देखता हूं, लेकिन उदाहरण के लिए फ़ंक्शन या कोड नहीं देखता। मैं कुछ उदाहरण की प्रशंसा करता हूं। – abkrim

+2

@abkrim वर्तमान() फ़ंक्शन किसी तत्व में वर्तमान तत्व का मान देता है। पूर्व के लिए: $ फल = सरणी ("केला", "सेब", "नारंगी"); गूंज वर्तमान ($ फल) // "केला" वापस कर देगा क्योंकि वर्तमान सूचक सूचकांक 0 पर है जो केले है। –

1

कोशिश:

$new_array = array(); 
foreach($big_array as $array) 
{ 
    foreach($array as $val) 
    { 
     array_push($new_array, $val); 
    }  
} 

print_r($new_array); 
13

पीएचपी array_merge­Docs समारोह अपने सरणी समतल कर सकते हैं:

$flat = call_user_func_array('array_merge', $array); 

मामले में मूल सरणी की तुलना में अधिक गहराई है 2 एल evels, पीएचपी में एसपीएल एक RecursiveArrayIterator आप इसे समतल उपयोग कर सकते हैं:

$flat = iterator_to_array(new RecursiveIteratorIterator(new RecursiveArrayIterator($array)), 0); 

रूप में अच्छी तरह देखें:Turning multidimensional array into one-dimensional array

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