Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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 在数组中循环时更新头字符串_Php_Arrays_Loops_Replace - Fatal编程技术网

Php 在数组中循环时更新头字符串

Php 在数组中循环时更新头字符串,php,arrays,loops,replace,Php,Arrays,Loops,Replace,背景:我正在遍历数据库数据并将其输出到表中的页面。我的循环首先输出报头信息,但报头是我称之为未准备就绪的前端 例如:child_0_生日需要更改为child 1生日 到目前为止,我的情况如下: 问题:有没有比编写很长的if语句更有效的方法来更改每列标题中显示的字符串?您可以使用数组来转换键和值的关联。假设$header=child\u 0\u生日: 创建替换数组,然后字符串替换应该可以工作。或者,您可以在u上分解变量名,并创建一个查找表,用更加用户友好的名称替换后端变量名。谢谢@abracadv

背景:我正在遍历数据库数据并将其输出到表中的页面。我的循环首先输出报头信息,但报头是我称之为未准备就绪的前端

例如:child_0_生日需要更改为child 1生日

到目前为止,我的情况如下:


问题:有没有比编写很长的if语句更有效的方法来更改每列标题中显示的字符串?

您可以使用数组来转换键和值的关联。假设$header=child\u 0\u生日:


创建替换数组,然后字符串替换应该可以工作。或者,您可以在u上分解变量名,并创建一个查找表,用更加用户友好的名称替换后端变量名。谢谢@abracadver这很有意义。
    //Define table header section here
        foreach ($fields as $k => $v){
        $html .= '<th class="manage-column" data-key="'.esc_html($v).'">'.updateHeaderName(vsz_cf7_admin_get_field_name($v)) .'</th>';
                                    }

    //This function would do the clean up

    $devHeaderNames = array("child_0_birthday", "child_0_fname", "child_0_lname", "child_0_age");

function updateHeaderName($oldHeader) {

    if (in_array($oldHeader, $devHeaderNames))
      {
     //This is where I would want to change the value of $oldHeader to something cleaner and spit it back out. I could write a very long if statement but there has to be a better way. 
        if ($oldHeader == child_0_fname){
            $newHeader = "Child 1 First Name";
            return $newHeader;
        }else if...
      }
   }
$devHeaderNames = array("child_0_birthday" => "Child 1 Birthday"); //etc...

if(isset($devHeaderNames[$header])) {
    $header = $devHeaderNames[$header];
}