2011-06-15 17 views
7

मैं इसे बनाना चाहता हूं ताकि मेरी बहु आयामी सरणी यादृच्छिक क्रम में हो। आपको इसे कैसे करना होगा?यादृच्छिक क्रम में बहु आयामी सरणी

// This is how the array looks like 
print_r($slides); 

Array 
(
    [0] => Array 
     (
      [id] => 7 
      [status] => 1 
      [sortorder] => 0 
      [title] => Pants 
     ) 

    [1] => Array 
     (
      [id] => 8 
      [status] => 1 
      [sortorder] => 0 
      [title] => Jewels 
     ) 

    [2] => Array 
     (
      [id] => 9 
      [status] => 1 
      [sortorder] => 0 
      [title] => Birdhouse 
     ) 

    [3] => Array 
     (
      [id] => 10 
      [status] => 1 
      [sortorder] => 0 
      [title] => Shirt 
     ) 

    [4] => Array 
     (
      [id] => 11 
      [status] => 1 
      [sortorder] => 0 
      [title] => Phone 
     ) 

) 

// This how the result is if I use array_rand() 
print_r(array_rand($slides, 5)); 

Array 
(
    [0] => 0 
    [1] => 1 
    [2] => 2 
    [3] => 3 
    [4] => 4 
) 

// This how the result is if I use shuffle() 
print_r(shuffle($slides)); 

1 
+1

संभावित डुप्लिकेट [PHP में सरणी के पहले स्तर को शफल करना] (http://stackoverflow.com/questions/21758260/shuffling-the-first-level-of-the-array-in-php) –

उत्तर

17

shuffle() यहां जाने का तरीका है। यह 1 प्रिंट क्योंकि shuffle यथा-स्थान सरणी बदलता है और एक बूलियन देता है, के रूप में यह documentation में लिखा है:

रिटर्न सफलता पर सही या गलत विफलता पर।

मैं भी documentation of array_rand() पढ़ने के लिए सुझाव देते हैं:

की पसंद एक या एक सरणी, का अधिकाधिक लाभ उठाएं यादृच्छिक प्रविष्टियों और कुंजी (या कुंजी) यादृच्छिक प्रविष्टियों की देता है। यदि आप में निर्मित कार्यों का उपयोग


हमेशा दस्तावेज़ पढ़ें। न करें कार्य कैसे करें। मुझे यकीन है कि इसे देखने से सवाल लिखने में अधिक समय लगा।

+2

ऊपर "केवल यह न मानें कि वे कैसे काम करते हैं" पर वोट दें क्योंकि PHP कार्य नरक के रूप में असंगत हैं :) – Scuzzy

+2

* सिर से पाम * बेशक! मैंने shple() – Cudos

+0

के लिए php.net पर स्पष्टीकरण को गलत समझा है, मुझे लगता है कि यह एक गूंगा टिप्पणी है, लेकिन मुझे लगता है कि "शर्ट" शफल के बाद अपनी "स्थिति" को बनाए रखना चाहता है। दूसरे शब्दों में, केवल पहला आयाम शफल हो जाता है, है ना? –

0

यह सही काम करता है। print_r (shuffle ($ स्लाइड्स))) TRUE का आउटपुट देता है, क्योंकि shuffle का वापसी मूल्य एक बूलियन है और एक सरणी नहीं है।

काम कर उदाहरण देखें: http://codepad.org/B5SlcjGf

1

print_r(shuffle($slides)); 

के बजाय

shuffle($slides); 
print_r($slides); 

आप shuffle() देख सरणी में जगह

+1

सभी डाउनवॉट्स के लिए धन्यवाद। क्या गलत है पर एक टिप्पणी हालांकि अच्छा होगा – mkilmanas

1

मुझे यकीन है कि कैसे नहीं हूँ shuffles करना आप इसे प्रदर्शित करना चाहते हैं लेकिन आप सरणी को लूप कर सकते हैं और पी का उपयोग कर सकते हैं सरणी को पार्स करने के लिए एचपी रैंड (0, सरलेन) फ़ंक्शन।

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