【问题标题】:How to dynamically generate headings and only print them if they contain a value?如何动态生成标题并仅在它们包含值时打印它们?
【发布时间】:2011-06-19 22:12:38
【问题描述】:

我是 PHP 新手,想知道执行以下操作的最佳方法是什么:

循环遍历 excel 文件中的一些记录并将它们作为 HTML 表格的标题输出,excel 中的每个标题都以标题开头,后跟索引,因此您可以:

Country1, Country2, Country3 ....through to Country50.

目前我正在处理以下效率不高的问题:

$vCountries ['country1'] = "Value of Country 1";
$vCountries ['country2'] = "Value of Country 2";
$vCountries ['country3'] = "";
$vCountries ['country4'] = "Value of Country 4";

然后我使用以下检查它们是否为空然后

foreach ($vCountries as $key => $value){
if(!empty($value)){
$result  .= "<th id='$key' .$value. "</th>\n";}
}}

但它不起作用。我错过了这个难题的一部分。有什么想法吗?

【问题讨论】:

  • 你有一个语法错误 - 在'$key'之后缺少关闭"。

标签: php excel dynamic


【解决方案1】:

尝试在 if 语句中添加字符串长度检查:

if (!empty($value) && strlen($value) > 0) {
    $result  .= "<th id='$key'" .$value. "</th>\n";
}

此外,您的 "$result .=" 行末尾有一个额外的右大括号,这可能会导致语法错误

关于数组的低效构建,请尝试以下思路:

$vCountries = array();
for ($i = 1; $i <= 50; ++$i) {
    $vCountries['country' . $i] = "Value of country " . $i;
}

【讨论】:

  • 连同明显不正确的 html&php。这会更好:'' .$value。 '\n';
  • 是的,谢谢大家,现在尝试一下,但是如何动态生成以下行: $vCountries ['country1'] = "Value of Country 1";我尝试使用 parse_str 函数,但无法将上述内容转换为字符串。令人困惑。
  • @Cigana:你应该为此打开另一个问题
  • 这是在我原来的问题中
猜你喜欢
  • 2011-04-24
  • 1970-01-01
  • 1970-01-01
  • 2014-09-30
  • 1970-01-01
  • 2012-01-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多