2015-05-19 2 views
0

Я пытаюсь отобразить блоки текста из списка блоков.PHP: Как отображать случайные блоки текста из многомерного массива?

Я имею в виду, что массив имеет больше смысла ...

$quotes[] = array(
    'block' => 'Luck is what happens when preparation meets Opportunity.', 
    'author' => 'Seneca', 
); 
$quotes[] = array(
    'block' => 'Quote number two.', 
    'author' => 'Author Two', 
); 
$quotes[] = array(
    'block' => 'Quote number three.', 
    'author' => 'Author Three', 
); 

Теперь, если я хочу, чтобы перечислить цитаты я бы сделал это:

foreach($quotes[] as $quote) { 
    echo '<div><p>"<i>' . $quote['block'] . '</i>"<br />― ' . $quote['author'] . '</p></div>'; 
} 

Но как я опишите листинг только одного из кавычек в случайном порядке?

Я оглядывался, а некоторые люди использовали while loops?

Конечная цель заключается в том, что везде, где я размещаю этот фрагмент кода, я хочу отобразить случайную цитату в разных частях моего веб-сайта, поэтому я не хочу, чтобы одна и та же цитата была в каждом месте.

+1

'перетасовать ($ кавычек)'; затем просто '$ displayQuote = array_pop ($ кавы);' и отобразите это ... [shuffle()] (http://www.php.net/manual/en/function.shuffle.php), [array_pop()] (http://www.php.net/manual/en/function.array-pop.php) –

+0

Как отобразить первый в перетасованном списке? Я не думал, что это будет простое lol ... Каждый вопрос, который я прочитал, был беспорядок математики. – Matthew

+1

'echo $ quotes [array_rand ($ quotes)];' –

ответ

1

Я считаю, что это так просто, как просто получить случайное целое число от 0 до count ($ quotes).

Это можно сделать как в this question.

В вашем случае:

echo $quotes[rand(0, count($quotes) - 1)]['block']; 
+0

Вы не обращаетесь к свойствам '$ quotes'. – Barmar

+0

Настоящая история, брат: 0) Отредактировано. –

Смежные вопросы