【问题标题】:php, mysql, arrays - how to get the row namephp,mysql,数组 - 如何获取行名
【发布时间】:2011-01-09 12:30:52
【问题描述】:

我有以下代码

while($row = $usafisRSP->fetch_assoc()) {
    $id = $row['id'];
    $Applicantid = $row['Applicantid'];
    $unique_num = $row['unique_num'];

    // .................

    $hidden_fields = array($Applicantid, $unique_num, $regs_t ....);
    $hidden_values = array();

   foreach ($hidden_fields as $key => $value) {
       $hidden_values[$value] = "$key = ".base64_decode($value)."<br>";
       echo $hidden_values[$value];
   }
}

结果是这样的

0 = 116153840 1 = 136676636 2 = 2010-12-17T04:12:37.077 3 = XQ376 4 = 穆坎塔巴纳

我想用一些自定义值(例如“Id”、“应用程序名称”)替换 0、1、2、3 等,以使结果类似于

编号 = 116153840 应用程序名称 = 136676636 ETC .. 我该怎么做?

【问题讨论】:

    标签: php mysql arrays associative-array


    【解决方案1】:

    $hidden_fields = array(... 行替换为以下内容:

    $hidden_keys = array('id', 'Applicantid', 'unique_num');
    $hidden_fields = array_intersect_key($row, array_fill_keys($hidden_keys, NULL));
    

    如果要抑制所有值为 0 的字段,请使用

    $hidden_fields = array_filter($hidden_fields, function($v) {return $v != 0;});
    

    (这将完全省略 0 条目)或

    $hidden_fields = array_map($hidden_fields, function($v) {return ($v==0?'':$v);});
    

    (这将使它们留空)。如果您使用的是低于 5.3 的版本,则必须将匿名函数替换为对 create_function 的调用。

    【讨论】:

    • 非常感谢您的回复。你能帮我多一点吗。如果 value=0 ,我不想显示特定键/值的内容。我有以下代码,但它不起作用 ------ if(base64_decode($value) == 0) { $hidden_​​values[$value] = ""; }
    • @Michael 已更新以包含此要求。如有其他要求,请随意询问另一个 stackoverflow 问题,只要确保它不以“首先,阅读我的上一个问题:...”开头;)
    【解决方案2】:

    我认为并非您行中的每个字段都应该是隐藏字段。否则你可以做$hidden_fields = $row

    我将创建一个指定隐藏字段的数组:

    $HIDDEN = array(
         'id' => 'Id', 
         'Applicantid' => 'application name', 
         'unique_num' => 'whatever'
    );
    

    然后在您的while 循环中:

    while(($row = $usafisRSP->fetch_assoc())){
    
        $hidden_fields = array();
    
        foreach$($HIDDEN as $field=>$name) {
            $hidden_fields[$name] = $row[$field];
        }
    
        //...
    
        foreach($hidden_fields as $name => $value) {
            $hidden_fields[$name] = $name . ' = ' . base64_decode($value);
            echo $hidden_values[$name];
            // or just echo $name, ' = ',$hidden_fields[$value];
        }
    }
    

    【讨论】:

      【解决方案3】:
      foreach ($row as $key => $value) {
         $hidden_values[$value] = "$key = ".base64_decode($value)."<br>";
         echo $hidden_values[$value];
      }
      

      这可以给你一些相关的东西。通过从包含字符串键的行数组中访问字符串键

      【讨论】:

      • 这会将$row中的每个字段设置为隐藏字段。
      猜你喜欢
      • 1970-01-01
      • 2013-05-12
      • 1970-01-01
      • 2017-12-23
      • 2011-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多