За последние 24 часа нас посетили 16347 программистов и 1587 роботов. Сейчас ищут 1579 программистов ...

Проверка массива на наличие не числового значения

Тема в разделе "Регулярные выражения", создана пользователем Js_Skriptor, 30 дек 2014.

  1. Js_Skriptor

    Js_Skriptor Новичок

    С нами с:
    30 дек 2014
    Сообщения:
    3
    Симпатии:
    0
    Добрый день!

    Есть массив
    Код (Text):
    1.  
    2. Array (
    3. [0] => 262
    4. [1] => 189
    5. [2] => S101
    6. )
    Необходимо организовать проверку, есть ли в массиве не числовое значение
    Как это сделать, какую функцию использовать?
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    'Number' === typeof varname
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.099
    Симпатии:
    1.243
    Адрес:
    там-сям
    1. Для тебя важно именно регуляркой это узнать?
    2. Значение '12345' считать числовым?
    3. Как насчет массива array(262, array(363), 464) ?
     
  4. p@R@dox 55RU

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

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    есть несколько вариантов:
    1) через регулярку;
    2) перевести строковое число через в (int) или в (float) значение, если равен значить число, иначе строка;
    3) или еще какой нить придумать ))
     
  5. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.099
    Симпатии:
    1.243
    Адрес:
    там-сям
    Подсказка: is_numeric(), array_filter()
    Подробнее здесь
             
     
  6. Js_Skriptor

    Js_Skriptor Новичок

    С нами с:
    30 дек 2014
    Сообщения:
    3
    Симпатии:
    0
    Для меня важно, то что различных входящих параметрах, массивы будут разные, и если есть не числовое значение в массиве, необходимо выводить определенную информацию.

    С задачей справился спасибо!
     
  7. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.099
    Симпатии:
    1.243
    Адрес:
    там-сям
    [sarcasm]Главное никому не говори как. Ты один достоин помощи.[/sarcasm]
     
  8. Js_Skriptor

    Js_Skriptor Новичок

    С нами с:
    30 дек 2014
    Сообщения:
    3
    Симпатии:
    0
    Грязно код получился!
    Код (Text):
    1.  
    2. <?foreach($arResult["SEARCH"] as $key=>$arItemKey):
    3.  
    4. $BufKey[$key]= $arItemKey[ITEM_ID];
    5.  
    6. endforeach; unset($arItemKey); unset($key);
    7.  
    8. $stroca=implode('',$BufKey);
    9.  
    10. ?>
    А потом перед блоком, где необходимо выводить информацию,
    вывел условие
    Код (Text):
    1. <?if(!is_numeric($stroca)): //echo $stroca;?>Блок  с инфой<?endif;?>
     
  9. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.099
    Симпатии:
    1.243
    Адрес:
    там-сям
    Ок. Можно было обойтись без if, а цикл оформить так:
    Код (PHP):
    1. foreach (array_filter($arResult['SEARCH'], 'is_numeric') as $key => $arItemKey):
     
  10. rognorog

    rognorog Новичок

    С нами с:
    7 июл 2014
    Сообщения:
    330
    Симпатии:
    0
    На сколько известно такой конструкции нет в php. =))) Ты перепутал походу с javascript =)
     
  11. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    rognorog, да я когда ссылку на форум открывал глазами прочел раздел JavaScript и запомнил что в нем сообщения читаю )))))) бывает, чо. человеческий фактор