【问题标题】:smarty php in_array not workingsmarty php in_array 不工作
【发布时间】:2014-10-17 15:48:51
【问题描述】:

Smarty-3.1.20

重写 php webapp 后端。使用 Smarty,因为它是几年前需要的,有效,为什么不呢,但现在它让我头疼。嵌套模板输出复选框。

如果我将其中一个值粘贴为字符串,但如果我将其作为变量引用,为什么 in_array 会返回 true?数组是 var_dump-ed 并且是数组并且 {$otherArray[0]} 返回正确的变量。 $anArray[loop] 正在打印正确的变量。数组字符串中没有多余的空格。在我把它全部扔掉之前阻止我,将 json 粘贴到 html 的底部并用 javascript 完成所有操作(下次肯定)

tl;博士:

in_array 不是从变量返回 true,而是从字符串返回?

<input type='checkbox' name='{$anArray[loop]}' value='{$anArray[loop]}' 
{if in_array($anArray[loop]}, $otherArray)} checked{/if}>
<br />
{$anArray[loop]}}

【问题讨论】:

    标签: smarty smarty3


    【解决方案1】:

    嗯,看来你在这里没有正确使用$ 符号,应该是:

    <input type='checkbox' name='{$anArray[$loop]}' value='{$anArray[$loop]}' 
    {if in_array($anArray[$loop]}, $otherArray)} checked{/if}>
    <br />
    {$anArray[$loop]}}
    

    【讨论】:

    • 有趣。这两种想法都为整个数组返回“true”,即无论是否存在数组匹配,都会检查所有框。请注意,{$anArray[loop]} - 在“循环”上没有 $ 前缀 - 在最后一行将正确的字符串返回到模板。我将继续玩这个,如果我解决它会发布。为了完成这项工作,我用 javascript 重写了它。
    【解决方案2】:

    尝试:

    {if $anArray.$loop|in_array:$otherArray}checked{/if}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-04
      • 1970-01-01
      相关资源
      最近更新 更多