Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: массив неповторяющиеся элементы
 
 автор: mabelrod   (04.05.2010 в 10:50)   письмо автору
 
 

Добрый день. У меня такой вопрос: есть массив, я из него рандомно беру значения и складываю их в какое то место, но получается так что там элементы могут повторяться, как сделать тк что бы все элементы были разные ?? Вот пример моего кода:


                    for ($i = 1; $i <= 10; $i++)
                    {
                      $rn = file("./data/base/base_up.data");
                      shuffle($rn);
                      $up = $up.$rn[0];
                      //echo $up;
                    }

  Ответить  
 
 автор: /|\';..;'/|\   (04.05.2010 в 10:53)   письмо автору
 
   для: mabelrod   (04.05.2010 в 10:50)
 

array_unique()

  Ответить  
 
 автор: Drago   (04.05.2010 в 11:27)   письмо автору
 
   для: mabelrod   (04.05.2010 в 10:50)
 


<?
$rn 
file("./data/base/base_up.data"); 
shuffle($rn);
$up implode(''array_slice($rn010));
echo 
$up;

  Ответить  
 
 автор: mabelrod   (04.05.2010 в 13:40)   письмо автору
 
   для: Drago   (04.05.2010 в 11:27)
 

я пошел немного другим путем ( из за неумения ) вот оно:


     function frup(&$up)
     {
                    for ($i = 1; $i <= 5; $i++)
                    {
                      $rn = file("./data/base/base_up.data");
                      shuffle($rn);
                      $rntmp = array ();
                      array_push($rntmp, $rn[0]);
                    }
                    $result = array_unique($rntmp);
                    print_r($result);
     }


Я как бы перемешивал массив - потом создал временный массив, в него складировал верхний элементи из старого массива. теоретически я думал что выйдут 5 разных элементов но на данный момент выходит только 1 элемент и все .... скажите куда дрегие делись или в чем ошибка ??

  Ответить  
 
 автор: Gubichev   (04.05.2010 в 13:53)   письмо автору
 
   для: mabelrod   (04.05.2010 в 13:40)
 


<?php
function frup()
     {                
$rntmp=array();
                    for (
$i 1$i <= 5$i++)
                    {
                      
$rn file("tags2.txt");
                      
shuffle($rn);
                      
array_push($rntmp$rn[0]);
                    }
                    
$result array_unique($rntmp);
                    
print_r($result);
     } 
    
echo 
frup();
?>

  Ответить  
 
 автор: Trianon   (04.05.2010 в 13:56)   письмо автору
 
   для: mabelrod   (04.05.2010 в 13:40)
 

$rntmp = array ();

Эта строка помещает в переменную пустой массив .

5 раз кряду.

  Ответить  
 
 автор: Valick   (04.05.2010 в 13:57)   письмо автору
 
   для: mabelrod   (04.05.2010 в 13:40)
 

не надо никуда ходить другим путем, Вам же написали array_unique()

$res=shuffle(array_unique(file("./data/base/base_up.data")));
echo $res[0].$res[1].$res[2].$res[3].$res[4];

  Ответить  
 
 автор: mabelrod   (04.05.2010 в 14:16)   письмо автору
 
   для: Valick   (04.05.2010 в 13:57)
 

Большое спасибо всем кто мне помогал, вопрос решен тема закрыта. Из этой темы вынес приличный кулёк знаний.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования