samedi 25 avril 2015

issue with php shuffle multidimensional array


hi there I declare an array variable and fill it:

foreach($urls as $url) 
{
    $webs[] = array( 'name' => $url['name'],
                     'url' => $url['link']);
}

it will fill something like this:

$webs: ((name:cnn,'link:cnn.com/1')
       (name:cnn,'link:cnn.com/1')
       (name:cnn,'link:cnn.com/1')
       (name:bbc,'link:bbc.com/1')
       (name:bbc,'link:bbc.com/1')
       (name:bbc,'link:bbc.com/1'))

Now I want to print it:

foreach($webs as $web) 
{
        echo "<br/>".$web['name'].':'.$web['url'];
}

result:

cnn: cnn.com/1
cnn: cnn.com/2
cnn: cnn.com/3
bbc: bbc.com/1
bbc: bbc.com/2
bbc: bbc.com/3

But I do not want it. I want print all result but randomlay something like this:

bbc: bbc.com/1
cnn: cnn.com/1
bbc: bbc.com/3
cnn: cnn.com/3
cnn: cnn.com/2
cnn: cnn.com/3
bbc: bbc.com/2

I try

$webs = shuffle($webs);
foreach($webs as $web) 
    {
            echo "<br/>".$web['name'].':'.$web['url'];
    }

but no success with this error:

Warning: Invalid argument supplied for foreach() 

Note: In my real code, $url['name'] is an another array.


Aucun commentaire:

Enregistrer un commentaire