Я хотел бы установить позицию в массиве равной первому $_GET
параметру, который существует.
Вот код, который у меня сейчас есть и который не работает точно так, как мне хотелось бы, поскольку он использует массивы:
'searchOptions'=>array_merge(
isset($_GET['Search1']['searchoption']) ? $_GET['Search1']['searchoption'] : array(),
isset($_GET['Search2']['searchoption']) ? $_GET['Search2']['searchoption'] : array(),
isset($_GET['Search3']['searchoption']) ? $_GET['Search3']['searchoption'] : array(),
isset($_GET['Search4']['searchoption']) ? $_GET['Search4']['searchoption'] : array(),
isset($_GET['searchBar']['searchoption']) ? $_GET['searchBar']['searchoption'] : array(),
isset($_GET['searchOptions']) ? $_GET['searchOptions'] : array()
),
Есть ли лучший способ сделать это, чтобы избежать array_merge
и работать правильно? В настоящий момент это не работает, если в параметре $_GET
передана строка, поскольку она должна быть массивом.
Способ, которым это работает, заключается в том, что только одна из проверяемых переменных $_GET
когда-либо будет существовать, так как если она существует, остальные из них не имеют значения.
Есть ли способ просто сделать что-то похожее на то, что у меня есть, но не рассматривать это, как будто я объединяю массивы?
Это может быть разбито на множество операторов if, которые проверяют, а затем устанавливают, существует ли оно, но кажется довольно неуклюжим.