За последние 24 часа нас посетили 34396 программистов и 1702 робота. Сейчас ищут 696 программистов ...

Как найти Key по части элемента? (регулярка не тянет)

Тема в разделе "PHP для новичков", создана пользователем minux, 28 ноя 2012.

  1. minux

    minux Активный пользователь

    С нами с:
    14 май 2012
    Сообщения:
    89
    Симпатии:
    1
    Есть массив, в котором нужно найти ключ элемента.

    $all=Array
    (
    [0] => kat/chto-bydet-jdat-kyryashego-cheloveka-v-2015-gody.html
    [1] => the/s-kakoi-storoni-schitat-podezd.html
    [2] => the/pereychivatsya-na-slepyu-pechat-ili-net.html
    )

    Для поиска у меня есть текст (начиная со слеша):
    $kd_page='/s-kakoi-storoni-schitat-podezd.html';

    Пытаюсь искать, используя регулярку:
    $kd_get_page=array_search("(.*)$kd_page",$all);

    Если использовать для поиска текст - все находится.
    По регулярке не находит. Пробовал загнать в делимитеры #такие#.

    array_search умеет искать по регулярке?
    Если нет, то как можно найти?



    <a href='http://pancer.com.ua/patron-flobera'>револьвер под флобер</a>

     
  2. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Код (PHP):
    1. $array=array(
    2. 0=>'0',
    3. 1=>'1
    4. ');
    5. foreach($array as $key => $val) {
    6.     echo nl2br($key.' => '.$value.'
    7.     ');
    8. } 
     
  3. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    а как насчет такого:
    Код (PHP):
    1. <?php
    2.  
    3. $source = array('John', 'Mary', 'Fredy', 'Bill', 'Sasha', 'Cat', 'Xavier');
    4.  
    5. // результат будет содержать имена, заканчивающиеся на "y"
    6. $filtered = array_filter($source, function($item) {
    7.     return preg_match('/.*y$/', $item);
    8. });
    9. // debug:
    10. var_export($filtered);
    11.  
    выведет
    Код (Text):
    1. array ( 1 => 'Mary', 2 => 'Fredy', )
    Добавлено спустя 3 минуты 11 секунд:
    в данном примере array_keys($filtered) будет буквально содержать ключи искомых элементов!!!
     
  4. minux

    minux Активный пользователь

    С нами с:
    14 май 2012
    Сообщения:
    89
    Симпатии:
    1
    Второе решение очень интересное. Только чего-то оно не работает даже в представленном виде...
     
  5. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    должно...
     
  6. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    это PHP 5.3, для более ранних функция так не создается, но суть я думаю понятна?

    в array_filter можно подставить любой callback - имя функции или массив(объект, метод) или массив(класс, статический_метод) или create_function

    Добавлено спустя 1 минуту 30 секунд:
    minux, руки выпрями ;)
     
  7. minux

    minux Активный пользователь

    С нами с:
    14 май 2012
    Сообщения:
    89
    Симпатии:
    1
    Спасибо!
    Сегодня пойду на массаж, спрошу у массажиста как выпрямить руки.