Как вернуть определенные ключи из массива $ _POST? - PullRequest
0 голосов
/ 08 июня 2010

Я хотел бы проверить, есть ли в $ _POST ключи, содержащие строку. Строка не будет полным ключом, а только частью ключа. (т.е. строка поиска = "delRowID", ключ $ _POST = "delRowID_16"). Я пытался использовать array_keys ($ _ POST, "delRowID"), но он никогда ничего не возвращал.

код

print_r($_POST);
print_r(array_keys($_POST,"delRowID"));

ВОЗВРАТ

Array ( [delRowID] => 29 [qAction] => [elmUpdateId] => [elmTtl] => [elmDesc] => [elmStr] => ) Array ( )

Ответы [ 5 ]

1 голос
/ 08 июня 2010

Если это отправляется формой, учитывая наименование элементов как элементов массива. Например,

<input type="checkbox" name="delRowID[16]" />
<input type="checkbox" name="delRowID[17]" />

будет представлять собой массив с именем $_POST['delRowID'] с элементами для каждого допустимого ввода.

Однако это надуманный пример, который лучше работает с другими типами ввода.

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

<input type="checkbox" name="delRowID[]" value="16" />
<input type="checkbox" name="delRowID[]" value="17" />

См. Также: Как создать массивы в HTML ?

1 голос
/ 08 июня 2010

Выполните цикл с помощью array_keys() и проверьте ключ с помощью strpos()

foreach (array_keys($_POST) as $key) {
  if (strpos($key, 'delRowId') === 0) {
    echo $key." found!";
  }
}
0 голосов
/ 08 июня 2010

Просто еще один способ (расширяя ответ mads):

if( getKey( 'delRowId', $_POST ) ){
    // delRow?
}

function getKey($stringToFind, $array) {
  foreach ($_POST as $key => $val) {
    if (strpos($stringToFind, $key) !== false) {
     return $val;
    } 
  }
  return false;
}
0 голосов
/ 08 июня 2010

Поскольку вы ищете частичный текст, вы можете просмотреть его:

foreach($_POST as $key => $value)
{
  if (strpos($key, 'delRowID') !== false)
  {
    echo $key;
    break;
  }
}
0 голосов
/ 08 июня 2010

Просмотрите все ключи, предоставленные вам array_keys($_POST). Сделайте совпадение строк для каждого.

Также обратите внимание, что array_keys($_POST,"delRowID") ищет ключи, связанные со значением «delRowID».

...