Php 按值获取$\u POST变量的名称

Php 按值获取$\u POST变量的名称,php,arrays,post,Php,Arrays,Post,如果我有几个帖子的结果是这样的: $_POST["ResponseA"] = 1, $_POST["ResponseB"] = 1, $_POST["ResponseC"] = 2, $_POST["ResponseD"] = 3, $_POST["ResponseE"] = 1, etc. 如何执行基于值获取数组的循环?因此,如果我检查值为1,则得到ResponseA、ResponseB、ResponseE? <?php $results = array_keys($_POS

如果我有几个帖子的结果是这样的:

$_POST["ResponseA"] = 1, $_POST["ResponseB"] = 1, $_POST["ResponseC"] = 2, $_POST["ResponseD"] = 3, $_POST["ResponseE"] = 1, etc.
如何执行基于值获取数组的循环?因此,如果我检查值为1,则得到ResponseA、ResponseB、ResponseE?


<?php 
    $results = array_keys($_POST, 1);
    var_dump($results);
?>

简单构建循环

  <?php
     $fields = array('ResponseA','ResponseB','ResponseC','ResponseD','ResponseE')

     function searchValue(array $fields, $value) {
         $out = array();
         foreach($fields as $name) {
           if(isset($_POST[$name]) && $_POST[$name] == $value) $out[]=$name;
         }
         return $out;
      }
      var_dump(searchValue($fields,1));
简单构建循环

  <?php
     $fields = array('ResponseA','ResponseB','ResponseC','ResponseD','ResponseE')

     function searchValue(array $fields, $value) {
         $out = array();
         foreach($fields as $name) {
           if(isset($_POST[$name]) && $_POST[$name] == $value) $out[]=$name;
         }
         return $out;
      }
      var_dump(searchValue($fields,1));
像这样使用
数组翻转()

$flipped = array_flip($_POST);

echo $flipped['1']; // ResponseA
但这样做会遇到问题,因为您的值不是唯一的

使用
array\u flip()
如下所示

$flipped = array_flip($_POST);

echo $flipped['1']; // ResponseA

但是这样做会有问题,因为您的值不是唯一的

您可以循环浏览$\u帖子:

foreach ($_POST as $key => $value) {
  if ($value == 1) {
    // $key will equal the value ResponseA if $_POST["ResponseA"] = 1
  }
}

您可以循环浏览$\u帖子:

foreach ($_POST as $key => $value) {
  if ($value == 1) {
    // $key will equal the value ResponseA if $_POST["ResponseA"] = 1
  }
}