Подтвердить что ты не робот

Выбор ключа массива на основе частичной строки

У меня есть массив, и в этом массиве у меня есть массив, который выглядит так: show_me_160 этот ключ может немного измениться, поэтому иногда страница может загружаться, а ключ массива может быть show_me_120, я хочу сейчас можно просто сопоставить строку массива до последнего _, чтобы я мог проверить, что это значение после последнего подчеркивания?

4b9b3361

Ответ 1

одно решение, о котором я могу думать:

foreach($myarray as $key=>$value){
  if("show_me_" == substr($key,0,8)){
    $number = substr($key,strrpos($key,'_'));
    // do whatever you need to with $number...
  }
}

Ответ 2

Недавно я столкнулся с подобной проблемой. Вот что я придумал:

$value = $my_array[current(preg_grep('/^show_me_/', array_keys($my_array)))];

Ответ 3

вам придется перебирать массив, чтобы проверять каждый ключ отдельно, так как у вас нет возможности напрямую запрашивать массив (я предполагаю, что массив также содержит полностью несвязанные ключи, но вы можете пропустить if часть, если это не так):

foreach($array as $k => $v)
{
  if (strpos($k, 'show_me_') !== false)
  {
    $number = substr($k, strrpos($k, '_'));
  }
}

Однако это звучит как очень странный способ хранения данных, и если бы я был вами, я бы проверял, нет ли другого способа (более эффективного) передачи данных в вашем приложении;)

Ответ 4

Вы также можете использовать решение на основе preg_match:

foreach($array as $str) {
        if(preg_match('/^show_me_(\d+)$/',$str,$m)) {
                echo "Array element ",$str," matched and number = ",$m[1],"\n";
        }
}

Ответ 5

 foreach($myarray as $key=>$value)
    if(count(explode('show_me_',$event_key)) > 1){
         //if array key contains show_me_
    }

Дополнительная информация (пример):

если ключ массива содержит 'show_me_'

$example = explode ('show_me _', 'show_me_120');

print_r ($ пример)

Array ( [0] => [1] => 120 ) 

print_r (количество ($ пример))

2 

print_r ($ пример [1])

 120 

Ответ 6

filter_array ($ array, function ($ var) {return (strpos ($ var, 'ищете_слово))! == FALSE);},);

возвращаемый массив 'search_key' => 'значение, назначенное ключу'