Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Случайная выборка из двумерного массива, "вешает" Apache

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Valmond
Отправлено: 17 Февраля, 2012 - 14:48:15
Post Id



Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




Доброго времени суток! Помогите разобраться. Мне необходимо выбрать из двумерного массива, 16 не повторяющихся значений. Скрипт я написал, но происходит что-то странное, при выполнении Апач просто "прекращает работу", причём несколько раз. Иногда поле этого показывает результат, а иногда работает нормально.

В чём же может быть причина?

Вот собственно код :

class Number
{
public $id; //Текущая используемая ячейка
public $sosedi; // Массив с правилами для ячеек-соседей
public $arr = array(); //Массив со случайными ячейками(результат)

public function sosed_rules()
{
$this->sosedi[0] = array(1,4,5);
$this->sosedi[1] = array(2,5,6,4);
$this->sosedi[2] = array(3,6,7,5);
$this->sosedi[3] = array(2,7,6);
$this->sosedi[4] = array(0,1,5,8,9);
$this->sosedi[5] = array(0,1,2,6,10,8,4);
$this->sosedi[6] = array(1,2,3,11,7,10,9,5);
$this->sosedi[7] = array(3,2,6,10,11);
$this->sosedi[8] = array(5,4,9,12,13);
$this->sosedi[9] = array(5,4,8,14,12,13,10,6);
$this->sosedi[10] = array(5,9,13,14,15,11,7,6);
$this->sosedi[11] = array(6,7,10,15,14);
$this->sosedi[12] = array(9,8,13);
$this->sosedi[13] = array(12,9,8,10,14);
$this->sosedi[14] = array(13,10,9,11,15);
$this->sosedi[15] = array(14,11,10);
}


//Random выбор ячейки
public function first_id()
{
$rand = array_rand($this->sosedi,1);
$this->id = $rand;
$this->arr[0] = $rand;
}

public function random_sosedi($id)
{

$rand_sosed = array_rand($this->sosedi[$id],1);
$value = $this->sosedi[$id][$rand_sosed];

$search = in_array($value,$this->arr);
if ($search !== true)
{
$this->arr[] = $value;
$this->id = $value;
if(!isset($this->arr[15]))
{
$this->random_sosedi($this->id);
}
}
if ($search == true)
{
$this->random_sosedi($this->id);
}
}
 
 Top
Panoptik
Отправлено: 17 Февраля, 2012 - 14:52:50
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




вам нужно выбрать уникальными именно значения или ключи?


-----
Just do it
 
 Top
Valmond
Отправлено: 17 Февраля, 2012 - 15:00:07
Post Id



Новичок


Покинул форум
Сообщений всего: 6
Дата рег-ции: Февр. 2012  


Помог: 0 раз(а)




Именно значения
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Если скрипт не работает »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB