Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从$\u POST数组返回特定键?_Php_Post_Associative Array_Key - Fatal编程技术网

Php 如何从$\u POST数组返回特定键?

Php 如何从$\u POST数组返回特定键?,php,post,associative-array,key,Php,Post,Associative Array,Key,我想检查一下$\u POST中是否有包含字符串的键。字符串不是完整的键,只是键的一部分。(即search string=“delRowID”,$\u POST key=“delRowID\u 16”)。我曾尝试使用array\u键($\u POST,“delRowID”),但它从未返回任何内容 代码 返回 Array ( [delRowID] => 29 [qAction] => [elmUpdateId] => [elmTtl] => [elmDesc] => [

我想检查一下$\u POST中是否有包含字符串的键。字符串不是完整的键,只是键的一部分。(即search string=“delRowID”,$\u POST key=“delRowID\u 16”)。我曾尝试使用array\u键($\u POST,“delRowID”),但它从未返回任何内容

代码

返回

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

使用
array\u keys()
执行循环,并使用
strpos()检查密钥


通过
array\u keys($\u POST)
提供给您的键循环。在每个屏幕上进行字符串匹配


另外,请注意,
array\u keys($\u POST,“delRowID”)
搜索与“delRowID”值相关联的键。

因为您正在搜索部分文本,所以可以在其中循环:

foreach($_POST as $key => $value)
{
  if (strpos($key, 'delRowID') !== false)
  {
    echo $key;
    break;
  }
}

如果这是通过表单发送的,请考虑将元素命名为数组元素。比如说,

<input type="checkbox" name="delRowID[16]" />
<input type="checkbox" name="delRowID[17]" />
另请参见:

另一种方式(扩展mads答案):


array\u keys
的第二个参数搜索数组的值而不是键,这就是为什么没有得到结果。我想我误解了搜索是array\u keys()。我认为它是在搜索键,因为array_search()搜索匹配的值并返回键。因此,如果我使用delRowID[]作为复选框的名称,$\u POST中返回的复选框将传播数组delRowID?这正是我想要的。@Brook:是的。如果我遗漏了什么,下面是PHP手册中讨论以数组形式发送值的部分:但是循环是一个草率的解决方案。必须有一种方法可以在没有索引循环的情况下实现这一点。@Brook:是的,通过修复问题的根源,即发送的输入。贝姆罗斯溶液应该可以做到这一点。
foreach($_POST as $key => $value)
{
  if (strpos($key, 'delRowID') !== false)
  {
    echo $key;
    break;
  }
}
<input type="checkbox" name="delRowID[16]" />
<input type="checkbox" name="delRowID[17]" />
<input type="checkbox" name="delRowID[]" value="16" />
<input type="checkbox" name="delRowID[]" value="17" />
if( getKey( 'delRowId', $_POST ) ){
    // delRow?
}

function getKey($stringToFind, $array) {
  foreach ($_POST as $key => $val) {
    if (strpos($stringToFind, $key) !== false) {
     return $val;
    } 
  }
  return false;
}