Массив PHP

Тема в разделе "PHP для новичков", создана пользователем RumaNO, 29 окт 2020.

Метки:
  1. RumaNO

    RumaNO Новичок

    С нами с:
    29 окт 2020
    Сообщения:
    11
    Симпатии:
    0
    сформировать массив случайных чисел от -50 до 50 из 10 элементов
    • вывести массив
    • перемешать массив (вывести массив)
    • отсортировать массив по убыванию (вывести массив)
    Я вот сделал функцией, но как перемешать и по убыванию сделать и при этом каждый раз выводить?
    PHP:
    function rand_arr( $N, $min = -50, $max = 50)
                {
                    return 
    array_map(
                        function() use( 
    $min, $max)
                        {
                            return 
    rand( $min, $max);
                        },
                        
    array_pad( [], $N, 0)
                    );
                }
               
                foreach(
    rand_arr(10) as $arr)
                {
                   echo 
    $arr." ";
                }
     
  2. roboformation

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

    С нами с:
    30 авг 2020
    Сообщения:
    162
    Симпатии:
    40
    Вывести массив (если непринципиально) можно и с помощью print_r ()
    https://www.php.net/manual/ru/function.print-r
    Перемешать массив с помощью shuffle ()
    https://www.php.net/manual/ru/function.shuffle
    И отсортировать по убыванию с помощью
    rsort ()
    https://www.php.net/manual/ru/function.rsort.php
    --- Добавлено ---
    PHP:
    function rand_arr () {
        for (
    $i = 1; $i <= 10; $i++) {
            
    $arr [] = mt_rand (-50, 50);
        }
        return 
    $arr;
    } 
    Если параметры всегда - 50, 50 и 10
     
    RumaNO нравится это.
  3. villiwalla

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

    С нами с:
    14 дек 2016
    Сообщения:
    471
    Симпатии:
    70
    PHP:
    $array = range(-50, 50, 10);

    print_r($array);

    shuffle($array);

    print_r($array);

    rsort($array);

    print_r($array);
     
  4. roboformation

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

    С нами с:
    30 авг 2020
    Сообщения:
    162
    Симпатии:
    40
    range () не рандомизирует
     
    RumaNO нравится это.
  5. villiwalla

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

    С нами с:
    14 дек 2016
    Сообщения:
    471
    Симпатии:
    70
    ок
    PHP:
    $array = array_rand(range(-50, 50, 5), 10);
     
  6. roboformation

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

    С нами с:
    30 авг 2020
    Сообщения:
    162
    Симпатии:
    40
    Это троллинг? Тут плохая рандомизация получается
     
    RumaNO нравится это.
  7. RumaNO

    RumaNO Новичок

    С нами с:
    29 окт 2020
    Сообщения:
    11
    Симпатии:
    0
    Нет, я тоже сначала так сделал, тут вы указываете еще и шаг и выходит 11 элементов (с нулем)
     
  8. Drunkenmunky

    Drunkenmunky Старожил

    С нами с:
    12 авг 2020
    Сообщения:
    1.513
    Симпатии:
    284
    PHP:
    <?php
    echo '<pre>';
    $array = range(-50, 50);
    shuffle($array);
    $array = array_slice($array, -10);//сформировать массив случайных чисел от -50 до 50 из 10 элементов
    print_r($array); //вывести массив
    shuffle($array); //перемешать массив
    print_r($array); //(вывести массив)
    rsort($array); //отсортировать массив по убыванию
    print_r($array); //(вывести массив)
    ?>
     
    RumaNO нравится это.