2013-08-01 12 views
5

मुझे यकीन नहीं है कि कोई प्रकार का PHP कार्य है जो मुझे यह काफी सरल या नहीं करने में मदद करेगा। मैंने सोचा कि मैं पूछूंगा।PHP मिलान डेटा सरणी

मान लीजिए कि मैं 5 उत्पादों [prod1, prod2, prod3, prod4, prod5]

इन उत्पादों eachother से जुड़े हुए हैं सब के सब है, इसलिए मैं कुछ इस तरह पर पहुंचने की जरूरत है:

prod1, prod2, prod3, prod4, prod5

prod2, prod3, prod4, prod5, prod1

prod3, prod4, prod5, prod1, prod2

prod4, prod5, prod1, prod2, prod3

prod5, prod1, prod2, prod3, prod4

गूंज, चर के रूप में सेव, यह मेरे लिए कोई फर्क नहीं पड़ता।

मेरे उदाहरण में मैंने 5 कहा, लेकिन वास्तव में उत्पादों की संख्या हो सकती है। क्या कोई ऐसा कार्य है जो स्वचालित रूप से n उत्पादों तक करता है ?? मैं यह भी नहीं जानता कि वास्तव में इस दूसरे को क्या कहना है, फिर मैं उनसे मिलकर मिल रहा हूं।

उत्तर

0

एक अन्य समाधान:

$array = array('$prod1', '$prod2', '$prod3', '$prod4', '$prod5'); 

$result = array(); 
for ($i = 0; $i < count($array); $i++) { 
    $result[] = array_merge(array_slice($array, $i), array_slice($array, 0, $i) ); 
} 
print_r($result); 

आउटपुट:

Array 
(
    [0] => Array 
     (
      [0] => $prod1 
      [1] => $prod2 
      [2] => $prod3 
      [3] => $prod4 
      [4] => $prod5 
     ) 

    [1] => Array 
     (
      [0] => $prod2 
      [1] => $prod3 
      [2] => $prod4 
      [3] => $prod5 
      [4] => $prod1 
     ) 

    [2] => Array 
     (
      [0] => $prod3 
      [1] => $prod4 
      [2] => $prod5 
      [3] => $prod1 
      [4] => $prod2 
     ) 

    [3] => Array 
     (
      [0] => $prod4 
      [1] => $prod5 
      [2] => $prod1 
      [3] => $prod2 
      [4] => $prod3 
     ) 

    [4] => Array 
     (
      [0] => $prod5 
      [1] => $prod1 
      [2] => $prod2 
      [3] => $prod3 
      [4] => $prod4 
     ) 

) 
+0

मैं प्रत्येक नेस्टेड सरणी को नाम कैसे दे सकता हूं? – thindery

+0

वास्तव में कैसे। उदाहरण के लिए मुझे दिखाएं –

+0

confsion के लिए खेद है .. यह कैसे काम कर सकता है यदि प्रारंभिक सरणी '$ array = array ('$ prod1', '$ prod2', '$ prod3', '$ prod4', '$ prod5') ; 'multidiemsnsional था: '$ array = array (सरणी (' prod1a, prod2a, prod3 '), सरणी (' prod4, prod5, prod6 '), सरणी (' prod7, prod8, prod9 '));' मैं नहीं करता देखें कि आपका कोड एक परत को नीचे कैसे डाइव करें ताकि यह केवल उन उत्पादों के लिए मिलान हो जो नेस्टेड सरणी – thindery

8

आप ऐसा कर सकते हैं: सुनिश्चित नहीं मैं समझ गया कि तुम क्या वास्तव में चाहते हैं

$arr = array($prod1, $prod2, $prod3, $prod4, $prod5); 

for ($i = 0; $i < count($arr); $i++) { 
    array_push($arr, array_shift($arr)); 
    print_r($arr); 
} 
+2

सरल और कार्यात्मक ... मैं इसे प्यार करता हूँ। – Orangepill

0

, लेकिन यह देखते हुए कि आपका मूल डेटा एक स्ट्रिंग, तो आप बस फोन 'विस्फोट' कर सकते हैं (http://php.net/manual/en/function.explode.php) या इसी तरह इसे चालू करने के लिए है एक सरणी में

0

इस प्रयास करें:

$products = array(); 
    $line= array("prod1", "prod2", "prod3", "prod4", "prod5"); 
    array_push($products , $line); 
    print_r($products); 
संबंधित मुद्दे