Notice: Undefined offset: 104 in .../function.php on line 164
Вроде как говорят мне что элемента не существует, не могу понять куда он пропадает, не должно же быть так. Хотя раз ошибка то должно, подскажите где собака порыта :)
Сама функция:
function randStr($num = 10, $sign = false)
{
$a = range(0,9);
$b = range('a','z');
$c = range('A', 'Z');
$d = range('!', '@');
$arr = array_merge($a, $b);
$arr = array_merge($arr, $a);
$arr = array_merge($arr, $c);
if( $sign === true )
$arr = array_merge($arr, $d);
$key = '';
$rand = microtime(true);
for($i = 0; $i < $num; ++$i)
{
shuffle($arr);
$countArr = count($arr);
$key .= $arr[ceil(round(($rand * 1000 - floor($rand * 1000)),2)*$countArr)]; // 164 строка
$rand = microtime(true);
}
return $key;
}
Спустя 1 час, 40 минут, 1 секунда (4.02.2012 - 02:24) sergeiss написал(а):
Могу предположить, но не буду утверждать однозначно. Потому что не просчитывал точно
Если ты индексы массиву не задавал, то он будет нумероваться цифрами с нуля и выше. Поэтому максимальный индекс будет на единицу меньше количества элементов.
Возможно, что у тебя ошибка вылезает, когда ты как раз пытаешься считать элемент с индексом, равным количеству элементов. А такого у тебя нет.

Если ты индексы массиву не задавал, то он будет нумероваться цифрами с нуля и выше. Поэтому максимальный индекс будет на единицу меньше количества элементов.
Возможно, что у тебя ошибка вылезает, когда ты как раз пытаешься считать элемент с индексом, равным количеству элементов. А такого у тебя нет.
Спустя 5 часов, 40 минут (4.02.2012 - 08:04) CaguCT написал(а):
sergeiss, да действительно, всего 103 элемента, нужно 1 отнимать еще.
Спасибо!
Спасибо!