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
Форумы портала PHP.SU :: Версия для печати :: Работа с массивом
Форумы портала PHP.SU » » Вопросы новичков » Работа с массивом

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

1. seifer - 28 Июля, 2017 - 17:51:52 - перейти к сообщению
Помогите разобраться с массивом (12 ,13, 43, 53, 66, 77, 123, 435) , получаем какое-либо число и нужно определить какому ключу он соответствует слева. Например ввели 40, значит его значение приравнивается к 13, а ключ соответственно будет 1. Спасибо за помощь.
2. Строитель - 28 Июля, 2017 - 18:21:15 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $need = 40; // Искомое число
  2. $arr = [12 ,13, 43, 53, 66, 77, 123, 435];
  3.  
  4. if (($key = array_search($need, $arr)) !== false) {
  5.     echo 'Ключ '. $key;
  6. } else {
  7.     echo 'Ключ не найден';
  8. }
3. seifer - 28 Июля, 2017 - 18:28:42 - перейти к сообщению
Строитель пишет:
PHP:
скопировать код в буфер обмена
  1. $need = 40; // Искомое число
  2. $arr = [12 ,13, 43, 53, 66, 77, 123, 435];
  3.  
  4. if (($key = array_search($need, $arr)) !== false) {
  5.     echo 'Ключ '. $key;
  6. } else {
  7.     echo 'Ключ не найден';
  8. }

Чуть не подходит, я сам разобрался
PHP:
скопировать код в буфер обмена
  1.  
  2. $arr = array(1,10,20,30,40,50,110,120,130,140);
  3.                         $num = 122;    
  4.         foreach($arr as $k=>$v){       
  5.                 if($num>$v){
  6.                         $key[] = $k;   
  7.                 }              
  8.         }
  9.                         echo end($key);
  10.  
4. Строитель - 28 Июля, 2017 - 18:57:35 - перейти к сообщению
seifer, у вас вроде бы не правильно идёт подсчёт. Вот вроде бы то, что было нужно (я сперва не внимательно прочитал задачу)
PHP:
скопировать код в буфер обмена
  1. $need = 40; // Искомое число
  2. $arr = [12 ,13, 43, 53, 66, 77, 123, 435];
  3.  
  4. for ($i = 0, $j = count($arr); $i < $j; $i++) {
  5.     if ($need >= $arr[$i] && $need < $arr[$i + 1]) {
  6.         echo 'Ключ: '. $i;
  7.     }
  8. }
5. LIME - 28 Июля, 2017 - 21:17:48 - перейти к сообщению
Строитель нагугли бинарный поиск
или метод деления пополам
ты привел полный просмотр
можно сделать горааааздо более быстрый алгоритм
у тебя скорость N (N - размер массива)
у бинарного поиска logN

PS: могу дать ссылку на хороший видео материал по алгоритмам
кратко и о главном
(Добавление)
хотя могу кратко пояснить
суть в том что берешь элемент посередине
если больше то берешь элемент посередине левой части
иначе шагаешь к среднему в правой части
итак пока не найдешь
сходимость будет быстрее чем полный просмотр...да?)
6. Строитель - 28 Июля, 2017 - 22:01:09 - перейти к сообщению
LIME пишет:
PS: могу дать ссылку на хороший видео материал по алгоритмам
Так, как ты объяснил, я не понял Радость Поэтому напиши пожалуйста ссылку.
7. LIME - 28 Июля, 2017 - 22:06:41 - перейти к сообщению
Строитель не вопрос
там курс для школьников, но многим разрабам было бы полезно...большинству к сожалению
https://www[dot]youtube[dot]com/watch?v=[dot][dot][dot]9hSmF3fTLKSwujkM
можно сразу смотреть лекцию про поиск если интересно понять что я невнятно пытался донести))
а лучше спокойно посмотреть с начала...это еще и просто интересно)
8. Строитель - 28 Июля, 2017 - 22:09:47 - перейти к сообщению
LIME пишет:
Строитель не вопрос
там курс для школьников, но многим разрабам было бы полезно...большинству к сожалению
https://www[dot]youtube[dot]com/watch?v=[dot][dot][dot]9hSmF3fTLKSwujkM
можно сразу смотреть лекцию про поиск если интересно понять что я невнятно пытался донести))
а лучше спокойно посмотреть с начала...это еще и просто интересно)
Благодарю )
9. LIME - 28 Июля, 2017 - 22:11:25 - перейти к сообщению
Строитель если понравится есть еще и более практический курс
тоесть как оно применяется в практике
если что пиши в лс
(Добавление)
тоесть те же алгоритмы но с условием поблочного чтения с диска итд
(Добавление)
и кстати там же поясняется что же такое индексы в принципе
поймешь как их юзать в бд в общих чертах...нууу...основы)
10. Строитель - 28 Июля, 2017 - 23:00:18 - перейти к сообщению
Строитель пишет:
если понравится есть еще и более практический курс
тоесть как оно применяется в практике
если что пиши в лс
Ок, спс ) Я к тебе обращусь, т.к. у меня бывает масса вопросов. Вот только ты редко тут появляешься... Работа?
11. LIME - 28 Июля, 2017 - 23:03:40 - перейти к сообщению
Строитель пишет:
Работа?
она
а еще тут не бывает интересных тем
как уровень вырос так и стало скучно(как и многим другим)
но письма приходят ...если что в лс

 

Powered by ExBB FM 1.0 RC1