2010-09-16 2 views
2

У меня есть форма, которая позволяет пользователю добавлять информацию в свой досуг. Они могут добавлять местоположения через jQuery в мою форму, поэтому, когда я получаю данные, у меня может быть 1 место или 10. Каждое место имеет такие атрибуты, как телефон, адрес и т. Д. В моей форме имена ввода добавляются с помощью _1, _2 и т. Д., Чтобы показать его новый набор данных. Это работает гладко, и я просто не могу найти эти ключи при цикличных через массив $ _POSTОценка ключа динамической матрицы

private function array_pluck($arr,$text) 
    { 
     foreach($arr as $key => $item) 
     { 
      if(stripos($key,$text) != 0) 
      { 
       $found[] = $item; 
      } 
     } 
     return $found; 
    } 

Как я понимаю, если мой массив имеет несколько ключей «office_branch_phone_1, office_branch_phone_2» Я должен быть в состоянии поставить в «office_branch» в моем параметре $ text, и он выплюнет любые ключи с «office_branch» в названии. Однако это не работает, и я немного в тупике.

+0

Прежде всего убедитесь, что $ _POST выглядит так, как вы ожидаете, что он находится в форме отправки либо 'print_r ($ _ POST)', либо через отладчик. Мое первое предположение было бы в том, что ваш $ arr не является ассоциативным. – Fanis

+0

Можете ли вы сделать var_dump ($ arr) и посмотреть содержимое $ _POST []? Также вы должны сделать stripos ($ key, $ text)! == false. – btrandom

ответ

1

С stripos вернет индекс (и возвращается на основе 0) != 0 неверен.

if (stripos($key,$text) !== false) 

Был бы правильным способом проверить его. Дайте это выстрел.

EDIT

Обратите внимание на использование !== вместо != поскольку 0, как правило, считается false, если свободно проверил !== будет проверять фактический тип, так что 0 является допустимым возвращение. Просто дополнительная информация о товаре

+0

Нужно больше кофе, вот и все! – Collin

Смежные вопросы