2016-04-03 2 views
0

Это первый раз, когда я задаю вопрос здесь, прошу прощения, если мой английский плохой или я сделал что-то не так. Я задал бы простой вопрос: как получить то же значение mt_rand? Пример:Получите то же значение mt_rand

$array = [ 
 
      array('colour' => 'Green', 'type' => 'BMW'), 
 
      array('colour' => 'Blue', 'type' => 'Toyota') 
 
     ]; 
 
$random = $array[mt_rand(0, count($array) - 1]; 
 

 
echo 'That car is ' . $random['type'] . ' with colour ' . $random['colour'];

Но иногда, это дает результат 'Этот автомобиль является BMW с цветным синим'. Я хочу, чтобы он дал правильный цвет, когда я его повторяю, например, если автомобиль BMW, цвет зеленый, и если автомобиль Toyota, он дает цвет Blue. Надеюсь, ты поймешь, что я имел в виду. Спасибо, что прочитали это ...

+0

Похоже, ваш код делает именно то, что вы хотите. Я протестировал его с помощью https://3v4l.org/MErbF –

+0

mt_rand запускается только один раз, поэтому, если это не полный код, он должен работать. – Mihai

+1

Этот код будет _never_ эхом синий BMW. Должно быть что-то еще или что выше не ваш фактический код. – arkascha

ответ

0

Проще использовать array_rand, чтобы получить случайный ключ из вашего массива.

Пример

$cars = [ 
    [ 
     'colour' => 'Green', 
     'type' => 'BMW' 
    ], 
    [ 
     'colour' => 'Blue', 
     'type' => 'Toyota' 
    ] 
]; 

$randomCarKey = array_rand($cars); 
// will be one of 0,1 

$randomCar = $cars[$randomCarKey]; 

print 'That car is ' . $randomCar['type'] . ' with colour ' . $randomCar['colour']; 

Выведет

That car is BMW with colour Green 

Если вы предпочитаете mt_rand здесь, как вы можете получить случайный ключ и использовать его

$randomKey = mt_rand(0, count($cars) - 1); 
$randomCar = $cars[$randomCarKey]; 

print PHP_EOL . 'That car is ' . $randomCar['type'] . ' with colour ' . $randomCar['colour']; 

Выведет

That car is Toyota with colour Blue 
Смежные вопросы