Случайный выбор

687
.
ДоХтор, вроде норм код работает,как изменить чтобы работало если к примеру цифра 10 потерялась , вот так $id = [1,2,3,4,5,6,7,8,9];
.
# dilp (23.04.2017 / 21:12)
ДоХтор, вроде норм код работает,как изменить чтобы работало если к примеру цифра 10 потерялась , вот так $id = [1,2,3,4,5,6,7,8,9];
С пользовательскими функциями дружишь? Если да, то вынеси оба массива за пределы функции, а потом измени сигнатуру пользовательской функции, передавая на её вход оба эти массива. Ну и не забудь так же в вызове функции прописать эти массивы.

Если ниасилил, я перепишу.
.
ДоХтор, я вынес,работает норм , удалил 10 и начинает долго думать
.
# dilp (23.04.2017 / 21:37)
ДоХтор, я вынес,работает норм , удалил 10 и начинает долго думать
Длина обеих массивов должна совпадать. Если убрал 10, то и в другом массиве (с частотой) так же надо убрать соответствующее значение 30.

Долго думает потому, что функция построена на рекурсии.
.
я понял что должна совпадать, если нет, как переделать?
.
# dilp (23.04.2017 / 21:42)
я понял что должна совпадать, если нет, как переделать?
Ну например, проверять длину обеих массивов перед их передачей на вход пользовательской функции, и в случае разности длины отсекать лишний элемент того массива, который больше.
.
не, отсекать не вариант,а считать без него
.
Добавлено: 23.04.2017 / 21:51
# dilp (23.04.2017 / 21:47)
не, отсекать не вариант,а считать без него
Так это по сути одно и то же - для функции этот элемент не используется, но длина массивов должна быть одинакова, а значит на вход подавать одинаковую длину, которую можно получить путем сравнения массивов подходящей для этого встроенной функцикей. Полученные данные сохранить в новый массив, который и передать на вход пользовательской функции. А оригинал останется не тронутым.

Добавлено: 24.04.2017 / 01:01
dilp, я дописал в этот пример вариант для изменяющегося массива $id. И ещё добавил в условие выражение count($_SESSION['freak']) < 2 это для того, чтобы не зацикливаться на одном значении, пока оно не достигнет нуля. Если это было не нужно, то удали эту часть из условия.
.
А если у меня вот так?


$array=('alfa' => 3 , 'beta' => 9 , 'gamma' => 0 ,'delta' =>6);
.
ДоХтор
# dilp (05.05.2017 / 19:10)
А если у меня вот так?



$array=('alfa' => 3 , 'beta' => 9 , 'gamma' => 0 ,'delta' =>6);
Синтаксически верно вот так:
$array = array('alfa' => 3, 'beta' => 9, 'gamma' => 0, 'delta' => 6);
// или так:
$array = ['alfa' => 3, 'beta' => 9, 'gamma' => 0, 'delta' => 6];
А если так, то пример надо подправить с учётом структуры этого массива.
Всего: 38