За последние 24 часа нас посетили 19349 программистов и 1655 роботов. Сейчас ищет 1171 программист ...

Массив, получить значение

Тема в разделе "PHP для новичков", создана пользователем eaglenix, 6 окт 2009.

  1. eaglenix

    eaglenix Активный пользователь

    С нами с:
    12 июл 2006
    Сообщения:
    47
    Симпатии:
    0
    PHP:
    1.  
    2. $A = array('обяз1','обяз2','обяз3');
    3. $B = array('необяз1','необяз2','необяз3','');
    4.  
    5. $R = array_rand($B, 2);
    6.  
    7. $C = array_merge($A,$R);
    8. shuffle($C);
    9.  
    10. foreach ($C as $variant) {
    11.     print "<li>$variant</li>";
    12. }
    13.  
    Массив $B после array_rand выдает ключ а не значение, как вывести значение через foreach?
     
  2. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Прочитать как работает http://ua2.php.net/array_rand
    И что он возвращает.

    В foreach у тебя в коде выводится только значение.
     
  3. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    PHP:
    1. <?
    2. $B = array('необяз1','необяз2','необяз3','');
    3. $R=array_rand($B,2);
    4.  
    5. for($i=0,$c=count($R);$i<$c;$i++){
    6.     print $B[$R[$i]];
    7. }
    8. ?>
    И ещё
    PHP:
    1. <?
    2. $B = array('необяз1','необяз2','необяз3','');
    3.  
    4. for($i=0$i<2;$i++){
    5.     print $B[array_rand($B)];
    6. }
    7. ?>
    и много др. вариантов
     
  4. eaglenix

    eaglenix Активный пользователь

    С нами с:
    12 июл 2006
    Сообщения:
    47
    Симпатии:
    0
    Спс, вот накарякал свой еще вариант с шафлом
    PHP:
    1. $B = array('необяз1','необяз2','необяз3','');
    2. shuffle($B);
    3.  
    4. for ($i=0; $i<=3; $i++){
    5.     $b_mod[] = $B[$i];
    6. }
     
  5. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    не проще $b_mod = $B; ?
     
  6. eaglenix

    eaglenix Активный пользователь

    С нами с:
    12 июл 2006
    Сообщения:
    47
    Симпатии:
    0
    Нет, это укороченный код в действительности $i рандомна
     
  7. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    PHP:
    1. $b_mod = $B;
    2. shuffle($b_mod);