$array = array ('1', '3', '4', '5', '6', '7',);
как вывести случайное значение?
$t = rand (0, 10);
echo $t;
То есть что бы вывелось например - 2 или 8 или 9 или 10?
Спустя 6 минут, 41 секунда (13.06.2011 - 14:33) nugle написал(а):
$t = $array[rand(0, count($array))];
как то так вроде
как то так вроде
Спустя 3 минуты, 42 секунды (13.06.2011 - 14:37) m4a1fox написал(а):
nugle
НЕ понимаю:(
НЕ понимаю:(
Спустя 38 секунд (13.06.2011 - 14:37) neadekvat написал(а):
array_rand()
Сколько раз говорили - читайте списки существующих функций.
Сколько раз говорили - читайте списки существующих функций.
Спустя 1 минута, 27 секунд (13.06.2011 - 14:39) nugle написал(а):
neadekvat
вы с inpostом определитесь как нас учить, то вначале говорите по ирбису, теперь делайте не так как на ирбис)
вы с inpostом определитесь как нас учить, то вначале говорите по ирбису, теперь делайте не так как на ирбис)
Спустя 2 минуты, 45 секунд (13.06.2011 - 14:42) neadekvat написал(а):
Цитата (nugle @ 13.06.2011 - 15:39) |
вы с inpostом определитесь как нас учить, то вначале говорите по ирбису, теперь делайте не так как на ирбис) |
А головой подумать? Если есть готовая функция - зачем использовать ее ручную реализацию?
На Ирбисе есть примеры готовых решений для задач, которые часто спрашивают. Но я не сказал "бери и пользуйся", я никогда такого не говорил. Пример - он и есть пример. Нельзя выключать голову, никогда, тем более, когда берешь чужой код.
Спустя 4 минуты, 26 секунд (13.06.2011 - 14:46) m4a1fox написал(а):
neadekvat
Цитата |
Нельзя выключать голову, никогда, тем более, когда берешь чужой код. |
Это вы про что?
И к тому же. Мне не нужно вывести случайное значение из массива, мне нужно вывести значение, которого НЕТ в массиве!
Спустя 53 секунды (13.06.2011 - 14:47) neadekvat написал(а):
Цитата (m4a1fox @ 13.06.2011 - 15:46) |
Это вы про что? |
Про то, что нельзя тупо взять и скопировать чужой код. Надо понять в нем каждую строчку и переписать самому.
Спустя 6 минут, 53 секунды (13.06.2011 - 14:54) nugle написал(а):
neadekvat
я понимаю каждую строчку, если не понимаю, то начинаю по 10 раз ее перечитывать чтобы понять, но не переписываю сам(
m4a1fox, запускай ранд и потом сравнивай с элементами в массиве, если они не схожи то пиши ее
я понимаю каждую строчку, если не понимаю, то начинаю по 10 раз ее перечитывать чтобы понять, но не переписываю сам(
m4a1fox, запускай ранд и потом сравнивай с элементами в массиве, если они не схожи то пиши ее
Спустя 1 минута, 12 секунд (13.06.2011 - 14:55) m4a1fox написал(а):
neadekvat
Цитата |
Надо понять в нем каждую строчку и переписать самому. |
Хорошо! Тогда поясните -
$array = array ('1', '2', '3',)
$t = $array[rand(случайное)(0(от нуля), count($array)(до 3))];
echo $t;
Как это поможет вытащить цифру которой нет в массиве?
Спустя 13 минут, 56 секунд (13.06.2011 - 15:09) neadekvat написал(а):
Цитата (m4a1fox @ 13.06.2011 - 15:55) |
Как это поможет вытащить цифру которой нет в массиве? |
Никак, это функция поможет вытащить число, которое есть в массиве.
Если тебе нужно число, которого там нет, то нужно составить массив этих чисел, которых нет в первом массиве.
Спустя 3 минуты (13.06.2011 - 15:12) m4a1fox написал(а):
neadekvat
Вот и я об этом....
И как
Вот и я об этом....
И как
Цитата |
которых нет в первом массиве |
Спустя 4 минуты, 49 секунд (13.06.2011 - 15:17) neadekvat написал(а):
$arr = array(1, 3, 4, 5, 7, 10); // Массив имеющихся чисел
$max = 11; // Максимальное значение
do
$num = rand(0, $max);
while (in_array($num, $arr));
echo $num;
Держи.
Спустя 1 минута, 54 секунды (13.06.2011 - 15:19) m4a1fox написал(а):
neadekvat
Ух-ты. do - while: давно не встречал такого.... с времен Попова))))
Ух-ты. do - while: давно не встречал такого.... с времен Попова))))
Спустя 1 минута, 52 секунды (13.06.2011 - 15:20) neadekvat написал(а):
Цитата (m4a1fox @ 13.06.2011 - 16:19) |
Ух-ты. do - while: давно не встречал такого.... с времен Попова) |
Ага, сказали, что это плохо - и все сразу забыли про эту конструкцию.
Спустя 1 минута, 18 секунд (13.06.2011 - 15:22) m4a1fox написал(а):
neadekvat
Та да! Спасибо! Ваша конструкция работает!
Та да! Спасибо! Ваша конструкция работает!
Спустя 1 минута, 36 секунд (13.06.2011 - 15:23) neadekvat написал(а):
Вот опять - сначала запустил, а потом подумал.
Это уже даже не смешно. Я только что говорил об этом.
Это уже даже не смешно. Я только что говорил об этом.
Спустя 5 минут, 59 секунд (13.06.2011 - 15:29) m4a1fox написал(а):
neadekvat
Ну так я разобрал.... и все понял.
Ну так я разобрал.... и все понял.
Спустя 1 час, 8 минут, 19 секунд (13.06.2011 - 16:38) Invis1ble написал(а):
Имхо, так получше будет:
$arr = array(1, 3, 5, 7, 9);
$arr_diff = array_diff(range(min($arr), max($arr)), $arr);
var_dump($arr_diff);
Спустя 6 минут, 28 секунд (13.06.2011 - 16:44) m4a1fox написал(а):
Invis1ble
Да, зачетно! Спасибо! Так гораздо лучше!
Да, зачетно! Спасибо! Так гораздо лучше!
Спустя 4 минуты, 51 секунда (13.06.2011 - 16:49) m4a1fox написал(а):
Но тут же вопрос
А если мне необходимо вывести значения скажем между 1000 - 9999;
В первыцй массив у меня попадут значения из БД (как? еще сам не знаю).
То здесь ($arr_diff = array_diff(range(min($arr), max($arr)), $arr)
как мне указать число?
А если мне необходимо вывести значения скажем между 1000 - 9999;
В первыцй массив у меня попадут значения из БД (как? еще сам не знаю).
То здесь ($arr_diff = array_diff(range(min($arr), max($arr)), $arr)

Спустя 2 минуты, 53 секунды (13.06.2011 - 16:52) Invis1ble написал(а):
m4a1fox
какое число?
какое число?
Спустя 4 минуты, 17 секунд (13.06.2011 - 16:56) m4a1fox написал(а):
Invis1ble
9999? Понимаете, необходимо что бы программа выводила 4-х значное число (т.е. от 1000 - до 9999), но при этом, нужно что бы это число не совпадало уже с теми, что есть в БД...
9999? Понимаете, необходимо что бы программа выводила 4-х значное число (т.е. от 1000 - до 9999), но при этом, нужно что бы это число не совпадало уже с теми, что есть в БД...
Спустя 9 минут, 19 секунд (13.06.2011 - 17:05) Invis1ble написал(а):
Я то понимаю, но понимаешь ли ты смысл кода, который я написал и его отличие от того, что привел neadekvat?
Я поясню, но советую все же научиться анализировать, и если видишь незнакомую функцию - обратиться к мануалу и изучить ее работу.
Массив $arr - это исходные данные (которые у тебя в БД). Код формирует массив, содержащий значения начиная от минимального (из массива $arr) и до максимального (тоже из $arr) с шагом 1. Далее вычисляется разница между исходным и сформированным массивом, на выходе - значения, не входящие в исходный массив.
Если нужно задать какое-то другое минимальное и/или максимальное значение - в чем проблема?
Смысл кода не в этом, а в функциях range() и array_diff().
Я поясню, но советую все же научиться анализировать, и если видишь незнакомую функцию - обратиться к мануалу и изучить ее работу.
Массив $arr - это исходные данные (которые у тебя в БД). Код формирует массив, содержащий значения начиная от минимального (из массива $arr) и до максимального (тоже из $arr) с шагом 1. Далее вычисляется разница между исходным и сформированным массивом, на выходе - значения, не входящие в исходный массив.
Если нужно задать какое-то другое минимальное и/или максимальное значение - в чем проблема?
$min = -10;
$max = 150;
$arr_diff = array_diff(range($min, $max), $arr);
Смысл кода не в этом, а в функциях range() и array_diff().
Спустя 6 минут, 15 секунд (13.06.2011 - 17:12) m4a1fox написал(а):
Invis1ble
Мдя... так я вроде и читал про эту функцию.... но теперь понял точно. Спасибо еще раз!
Мдя... так я вроде и читал про эту функцию.... но теперь понял точно. Спасибо еще раз!
Спустя 4 минуты, 39 секунд (13.06.2011 - 17:16) SergeyZuzic написал(а):
m4a1fox
Случеам не
Случеам не
auto_increment
изобретаем?Спустя 4 минуты, 34 секунды (13.06.2011 - 17:21) m4a1fox написал(а):
SergeyZuzic
Нет нет! Не auto_increment:)
Нет нет! Не auto_increment:)
Спустя 1 минута, 38 секунд (13.06.2011 - 17:23) Invis1ble написал(а):
Я по-ходу понял
Это я наверное туплю после суток кодинга
Тебе нужно всего одно число? Или все числа, не входящие в исходный массив?
Если одно - то конечно же просто rand(), если все - то мой вариант.


Тебе нужно всего одно число? Или все числа, не входящие в исходный массив?
Если одно - то конечно же просто rand(), если все - то мой вариант.
Спустя 5 минут, 7 секунд (13.06.2011 - 17:28) m4a1fox написал(а):
Invis1ble
Вообщето одно, но если взять ваш вариант в снести его в список! То в общем-то не плохо получается. Жаль только не понимаю как вообще возможно применить shufle ко всему этому. То есть что бы выводилось допустим случайное число?!
вот собственно код
Вообщето одно, но если взять ваш вариант в снести его в список! То в общем-то не плохо получается. Жаль только не понимаю как вообще возможно применить shufle ко всему этому. То есть что бы выводилось допустим случайное число?!
вот собственно код
$arr = array(1000, 1011, 1022, 1033, 1044, 1055);
$min = 1000;
$max = 1100;
$arr_diff = array_diff(range($min, $max), $arr);
echo '<select>';
foreach ($arr_diff as $key => $value)
{
echo '<option name="'.$value.'">'.$value.'</option>';
}
echo '</select>';
Спустя 4 минуты, 25 секунд (13.06.2011 - 17:32) Invis1ble написал(а):
$arr = array(1000, 1011, 1022, 1033, 1044, 1055);
$min = 1000;
$max = 1100;
$arr_diff = array_diff(range($min, $max), $arr);
shuffle($arr_diff);
echo '<select>';
foreach ($arr_diff as $key => $value)
{
echo '<option name="'.$value.'">'.$value.'</option>';
}
echo '</select>';
Так?
Спустя 3 минуты, 32 секунды (13.06.2011 - 17:36) m4a1fox написал(а):
Invis1ble
Да, однозначно так. Спасибо. Выручили. Буду знать в дальнейшем!
Да, однозначно так. Спасибо. Выручили. Буду знать в дальнейшем!
Спустя 1 минута, 40 секунд (13.06.2011 - 17:37) Invis1ble написал(а):
Пожалуйста.