После прочтения вопрос несколько раз, я думаю, теперь я понимаю. Проверьте, как я применил бы проблему в этом примере кода в Runable.
Быстрый ответ
Как проверить IsSet за $ _POST для двух одномерных массивов?
if (isset($_POST['apply']) &&
isset($_POST['apply']['someuniqueid']))
{
//Do stuff
}
где someuniqueid
является идентификатор кнопки.
Более длинный ответ
В вашем случае, что someuniqueid
именно то, что вы хотите, чтобы понять. Я предполагаю, что этот «идентификатор» имеет смысл, и вы заранее знаете все возможные идентификаторы. В этом случае вам нужно проверить каждый возможный ID до тех пор, пока не будет найдено совпадение. Простым способом является сохранение этих идентификаторов в массиве, а затем цикл через него.
$possibleIDs = array('a', 'b', 'c', 'd');
if (isset($_POST['apply'])) {
foreach ($possibleIDs as $id) {
if (isset($_POST['apply'][$id])) {
// Do stuff
}
}
}
Предложение
Однако, это очень неэффективно, потому что нужно создать массив с идентификаторами, а затем цикл через него, чтобы найти значение. На самом деле, нет смысла использовать массив «ключ» как «значение». Кроме того, «ключ» имена могут быть преобразованы/изменить (например, array('8' => 'foo')
будут преобразованы в array(8 => 'foo')
.
Лучший подход, имхо, было бы присвоить этот идентификатор, чтобы значения кнопок.
<button type="submit" name="apply" value="<?php echo $temp['j_id']; ?>"> Apply</button>
в принимающем скрипте, ваша кнопка идентификатор $_POST['apply']
значение.
Вы можете проверить этот пример в Runable. Обратите внимание на то, что только кнопка нажата, присваивается значение. остальные кнопки не представлены.
Возможно, вам придется переписать или добавить дополнительные сведения к вашему вопросу, потому что трудно понять, что вы просите. – Tivie