使用PHP根据条件动态别名列值
我想按条件更改echo上的列值。用作列值的说明。但我碰巧在我的工作中只附和了第一条令人满意的条款 听说关联数组可以解决这个问题。根据我的项目条件和知识水平,我无法做到这一点。下面是函数的清晰代码使用PHP根据条件动态别名列值,php,associative-array,Php,Associative Array,我想按条件更改echo上的列值。用作列值的说明。但我碰巧在我的工作中只附和了第一条令人满意的条款 听说关联数组可以解决这个问题。根据我的项目条件和知识水平,我无法做到这一点。下面是函数的清晰代码 function UFLAGAlias($productResult) { while ($uflag = oci_fetch_assoc($result)) { $uflagc = $uflag["UFLAG"]; if($uflagc == 0) {
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
]
]
?>
因此,正如我期望动态输出值一样,所有列值都设置为“notblocked”。它们必须是有条件的。我相信这些代码就足够了,因为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;
?>
不清楚您打算发生什么。请提供一个示例,说明$productResult
中的内容以及生成的HTML代码的所需输出。@fyrye$productResult从SAP的USR02(用户)表中检索字段。UFLAG字段将用户的锁定状态保持为整数索引值。但它们不应该是数字,而应该显示为UFLAGAlias()函数的满足条件。请更新您的问题,以包含一组示例数据,预期结果应该是,它不必是源数据,并且您应该删除任何机密数据。看见现在我们只知道你想要完成的事情的一半,并且需要很多假设来确定你实际期望发生的事情。是的,我需要在这个函数中遍历关联数组。它很有魅力:谢谢