使用 PHP 在条件下动态别名列值

Alias Column Values Dynamically on Condition with PHP

我想按条件更改 echo 上的列值。用作列值的描述。但我碰巧在我的工作中只回应了第一个满意的条款。

听说关联数组可以解决这个问题。根据我的项目条款和知识水平,我无法做到这一点。这是函数的清晰代码

function UFLAGAlias($productResult)
{    
while ($uflag = oci_fetch_assoc($result))
{ 

    $uflagc = $uflag["UFLAG"]; 


    if($uflagc == 0)
    {
        $uflagc= "Not Blocked";
        printf($uflagc);
    }

    else if($uflagc == 64)
    {
        $uflagc = "Blocked by system administrator";
        printf($uflagc);
    }

    else if($uflagc == 192)
    {
        $uflagc = "Blocked by system administrator\nBlocked for invalid logon"; 
        printf($uflagc);
    }

    else if($uflagc == 128)
    {
        $uflagc = "Blocked for invalid logon";
    }

    else
    {
        $uflagc = "";
    }
    return $uflagc;
}
}

回声

<?php
if (! empty($productResult)) {
foreach ($productResult as $key => $value) { 
?>
   <tr>
   <td><?php UFLAGAlias($productResult[$key]); ?></td>                
   </tr>
<?php
]
]

?>

因此,正如我希望动态输出值一样,所有列值都设置为 "Not Blocked"。它们必须是有条件的。我相信这么多代码已经足够了,因为 rest 是私有的。

您正在尝试从密钥中获取,因为您将密钥倒置了。

您需要获取结果集,然后 - 如果需要 - 遍历生成的关联数组。

<?php
function UFLAGAlias($uflag){
   $uflags = array( 0 => 'Not Blocked'
                  , 64 => 'Blocked by system administrator'
                  , 192 => 'Blocked by system administrator\nBlocked for invalid logon'
                  , 128 => 'Blocked for invalid logon'
                  );
   return isset($uflags[$uflag]) ? $uflags[$uflag] : '';
}

if (! empty($productResult)) {
   while( $row = oci_fetch_assoc($productResult) ):
?>
   <tr>
   <td><?echo UFLAGAlias($row['UFLAG']); ?></td>                
   </tr>
<?php
   endwhile;
?>