|
|
|
| Доброго всем дня, возникла проблемка при разделении массива поровну, а именно:
есть массив:
<?
$mass = array('1','2','3','4','5','6','7','8','9','10',
'11','12','13','14','15','16','17','18','19','20',
'21','22','23','24','25','26','27','28','29','30',
'31','32','33','34','35','36');
?>
|
помогите создать две сессионные переменные в которых будет по 18 элементов из массива $mass и так, чтобы элементы не повторялись (если в первой переменной есть элемент со значением 1, то во второй его уже быть не должно). Условие: массив должен делиться рэндомно | |
|
|
|
|
|
|
|
для: selma
(21.02.2011 в 08:40)
| | Что-то уж больно много требований сразу.
Как создавать сессионные переменные, не зная их имени - непонятно.
Последнее условие (насчет должен делиться рэндомно) с гарантией вообще невыполнимо
Взять первую половину =array_slice(массив, 0, половина_длины)
Взять вторую половину =array_slice(массив, половина_длины)
Перемешать shuffle(массив) | |
|
|
|
|
|
|
|
для: Trianon
(21.02.2011 в 09:22)
| | Делала так (для одной переменной):
<?
session_start();
$arr=array('1','2','3','4','5','6','7','8','9','10',
'11','12','13','14','15','16','17','18','19','20',
'21','22','23','24','25','26','27','28','29','30',
'31','32','33','34','35','36');
if (empty($_SESSION['cols'])) $_SESSION['cols']=0;
while ($_SESSION['cols']<18 && !isset($_SESSION['numb']))
{
for ($i=0;$i<=17;$i++)
{
$_SESSION['numb'] = $_SESSION['numb'].$arr[array_rand($arr)]." | ";
++$_SESSION['cols'];
}
}
?>
|
Но цифры повторяются:((((((( я увернна, что нужно проверять на наличие in_array(); но как???? | |
|
|
|
|
|
|
|
для: selma
(21.02.2011 в 09:31)
| |
<?php
$arr=array('1','2','3','4','5','6','7','8','9','10',
'11','12','13','14','15','16','17','18','19','20',
'21','22','23','24','25','26','27','28','29','30',
'31','32','33','34','35','36');
$arr0 = $arr;
shuffle($arr0);
$arr1 = array_slice($arr0, 0, count($arr)/2);
$arr2 = array_slice($arr0, count($arr)/2);
$_SESSION['numbers'][0] = $arr1;
$_SESSION['numbers'][1] = $arr2;
|
Если Вы хотите комментарии по своему коду, то сперва попробуйте получить две обычных переменных, вне связи с сессиями. Сессии у Вас затуманивают картину так, что ошибок не видно. | |
|
|
|
|
|
|
|
для: Trianon
(21.02.2011 в 09:41)
| | огромное спасибо:) мысль уловила | |
|
|
|
|