привет, я объявляю переменную массива и заполняю ее:
foreach($urls as $url)
{
$webs[] = array( 'name' => $url['name'],
'url' => $url['link']);
}
это заполнит что-то вроде этого:
$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'))
Теперь я хочу напечатать это:
foreach($webs as $web)
{
echo "<br/>".$web['name'].':'.$web['url'];
}
результат:
cnn: cnn.com/1
cnn: cnn.com/2
cnn: cnn.com/3
bbc: bbc.com/1
bbc: bbc.com/2
bbc: bbc.com/3
Но я этого не хочу.
Я хочу напечатать все результаты, но случайное воспроизведение примерно так:
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
я попробую
$webs = shuffle($webs);
foreach($webs as $web)
{
echo "<br/>".$web['name'].':'.$web['url'];
}
но безуспешно с этой ошибкой:
Warning: Invalid argument supplied for foreach()
Заметка: В моем реальном коде, $url['name']
это другой массив.
shuffle()
ПРАВДА в случае успеха или ЛОЖНЫЙ на неудачу, когда вы передаете массив на него, вы назначили True
в $webs
в этом случае. Узнать больше шарканье.
Замечания: Эта функция присваивает новые ключи элементам в массиве. Он удалит все существующие ключи, которые могли быть назначены, а не
просто переупорядочив ключи.
shuffle($webs); //see here cause shuffle return true or false
foreach($webs as $web)
{
echo "<br/>".$web['name'].':'.$web['url'];
}
Других решений пока нет …