I’m new to the stackoverflow so feel free to delete this question if it’s stupid:
The main purpose of doing this is to display a list of details on a page randomly everytime it refreshes, but the details are in different arrays, so i have 2 arrays which i have to randomize in the same way,
Example:
$Name[0]=John;
$Name[1]=Lucy;
$Name[2]=Mike;
$Age[0]=18;
$Age[1]=20;
$Age[2]=25;
after being randomize becomes :
$Name[2]=Mike;
$Name[0]=John;
$Name[1]=Lucy;
$Age[2]=25;
$Age[0]=18;
$Age[1]=20;
I tried using “->”, For example:
$Array[0]->name = 'John';
$Array[0]->age = '18';
$Array[1]->name = 'Lucy';
$Array[1]->age = '20';
shuffle($Array);
but my teacher wasn’t thrilled because the code was messy since there’s alot of transfer (Details into the new array before the randomizing and new array back into details after randomizing). He wants me to do it only with the 2 arrays.
What you are doing, is sort of the right way of doing things. Look at it this way. What exactly are you trying to achieve? You want a set of data sorted randomly (ok, sorting is not the right word here, but you get it). Whenever you talk about any kind of reordering of data, we talk about changing the order that the elements appear in. Your element here is neither ‘name’, nor ‘age’. Your element here is ‘person’. So, your data list should be a list of ‘person’s, which you would reorder and not in two loosely-coupled arrays.
Anyways, if you absolutely MUST do it this way. This is what I suggest.
Let there be two arrays
$Aand$B. Let them both haveNelements. What you do is, create an array$nums, which has elements from0toN-1i.e.Now, shuffle the
$sumsarray. So, let’s say we have something like:Ok, so we have created a mapping here,
$num[0] = 3
means that the 0th element is 3, which you can interpret as
in the new array, the 0th element should be the 3rd element of the old array. To do this, run a simple loop:It is a slightly challenging task if you insist on this being an online solution (a solution that modifies the original data structure and not build a new one), but I’ll leave that ask to you (think of swapping data elements according to the map we just created). Also, you could extend it easily to more than 2 arrays, or an array of arrays in case you’re not sure how many arrays one has to deal with. Feel free to ask any question you might have…