modernmafia Posted June 5, 2012 Author Share Posted June 5, 2012 so if i had say 10 cars it would be 0,9 Quote Link to comment Share on other sites More sharing options...
sniko Posted June 5, 2012 Share Posted June 5, 2012 @modernmafia I'll write something that's more pleasing to the eyes for you, regarding arrays and the key indexing problem you're having. <?php /* * View outcome; http://codepad.org/0rxosNoK */ // Initiate array // Add elements (key => value) $cars = array(0 => "Car1", 1 => "Car2", 2 => "Car3", 3 => "Car4", 4 => "Car5", 6 => "Car6"); print_r( $cars ); ?> As you see, it's easier to index the elements, using numbers, referred to as keys. As for the random selection, why not do something like; /* * View outcome; http://codepad.org/27qAS5EW */ <?php // Initiate array // Add elements (key => value) $cars = array(0 => "Car1", 1 => "Car2", 2 => "Car3", 3 => "Car4", 4 => "Car5", 6 => "Car6"); // Get random element from the array $won = array_rand( $cars, 2 ); // Output it echo $cars[$won[0]]; ?> @Djkanna Arrays start from 0 not from 1. I believe this to be not entirely true, as if you look at the above code, I could have started the key at 1, not 0. Quote Link to comment Share on other sites More sharing options...
Djkanna Posted June 6, 2012 Share Posted June 6, 2012 @Djkanna I believe this to be not entirely true, as if you look at the above code, I could have started the key at 1, not 0. Specifed keys can be anything you like. However not specifying keys (See MM's OP code), or using some function that doesn't leave the keys in-tact will regard my statement to be entirely true. As an example we'll take your cars array from the second code snippet(bumped up by 1.). $cars = array(1 => "Car1", 2 => "Car2", 3 => "Car3", 4 => "Car4", 5 => "Car5", 6 => "Car6"); Dump: array 1 => string 'Car1' (length=4) 2 => string 'Car2' (length=4) 3 => string 'Car3' (length=4) 4 => string 'Car4' (length=4) 5 => string 'Car5' (length=4) 6 => string 'Car6' (length=4) As expected; Now lets do something, you may come across from time to time, the sort function. sort($cars); Dump: array 0 => string 'Car1' (length=4) 1 => string 'Car2' (length=4) 2 => string 'Car3' (length=4) 3 => string 'Car4' (length=4) 4 => string 'Car5' (length=4) 5 => string 'Car6' (length=4) Conclusion; not specifying keys or using something that doesn't respect said keys will mean your arrays will start from zero. Quote Link to comment Share on other sites More sharing options...
sniko Posted June 6, 2012 Share Posted June 6, 2012 @Djkanna Understood, thanks! :) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.