За последние 24 часа нас посетили 59689 программистов и 1852 робота. Сейчас ищут 1244 программиста ...

Поиск элемента массива без ​in_array, array_search

Тема в разделе "Прочие вопросы по PHP", создана пользователем Danila Tim, 2 июн 2015.

  1. Danila Tim

    Danila Tim Новичок

    С нами с:
    2 июн 2015
    Сообщения:
    20
    Симпатии:
    0
    Здравствуйте. Есть массив целых чисел. Необходимо найти значение массива, не применяя ​in_array или array_search. Когда будет найден нужный элемент, возвращаем TRUE, иначе FALSE.

    Код (PHP):
    1. function searchInArray($a, $b) {
    2.     foreach ($a as $key => $value) {
    3.         if($value == $b) {
    4.             return true;
    5.             break;
    6.         } else {
    7.            return false;
    8.         }  
    9.     }
    10. }
    11.  
    Где тут ошибка, не могу я понять. Кому не сложно, ткнуть носом где можно почитать или дать подробный ответ.
    Спасибо!
     
  2. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    Код (Text):
    1. else {
    2.            return false;
    3.         }  
     
  3. Danila Tim

    Danila Tim Новичок

    С нами с:
    2 июн 2015
    Сообщения:
    20
    Симпатии:
    0
    Дайте пожалуйста пояснение
     
  4. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    если при первой итерации не выполнится условие, то в этом месте прекратиться цикл.. ;)
     
  5. Danila Tim

    Danila Tim Новичок

    С нами с:
    2 июн 2015
    Сообщения:
    20
    Симпатии:
    0
    Какое бы вы решение посоветовали ?
     
  6. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    Код (Text):
    1. function searchInArray($a, $b) {
    2.     foreach ($a as $key => $value) {
    3.         if($value == $b) {
    4.             break;
    5.         }
    6.     }
    7. }
     
  7. Danila Tim

    Danila Tim Новичок

    С нами с:
    2 июн 2015
    Сообщения:
    20
    Симпатии:
    0
    Спасибо :)
    Я проверил решение, она возвращает NULL при любом вводе элемента который нужно найти. Как бы сделать, ех
     
  8. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    а конкретно что нужно найти, само число или индекс числа и вернуть имени функции??
     
  9. Danila Tim

    Danila Tim Новичок

    С нами с:
    2 июн 2015
    Сообщения:
    20
    Симпатии:
    0
    Да, самом число...не индекс. Другими словами есть масив, значения от 1-10. Индексы от 0-9. Мне нужно найти например значение 5. Если 5 есть в массиве, возвращаем true, если нет...false.

    Добавлено спустя 1 минуту 8 секунд:
    Я постарался сделать это, но не вышло как видите....
    C ошибкой вы мне уже помогли, я чего-то не мог понять где проблема...из-за отсутстивия опыта. Сейчас нужно это исправить. Пока еще не пришли мысли в голову.
     
  10. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    тогда будет так, либо true, либо false -
    Код (Text):
    1. function searchInArray($a, $b) {
    2.     foreach ($a as $key => $value) {
    3.         if($value == $b) {
    4.             return true;
    5.         }
    6.     }
    7.    return false;
    8. }
     
  11. Danila Tim

    Danila Tim Новичок

    С нами с:
    2 июн 2015
    Сообщения:
    20
    Симпатии:
    0
    Только хотел Вам отправить аналогичное решение...спасибо, без вас бы не справился! Удачи!