结合超过2个Smarty阵列

时间:2017-09-07 14:19:00

标签: php arrays smarty

使用array_combine时,我能够组合两个数组并使用循环。在下面的示例中,我可以在HTML中使用$ title。

{foreach array_combine($p_titles, $p_prices) as $title => $price}<!--SOME HTML-->{/foreach}    

但是,如果我尝试向此解决方案添加另一个数组,则会中断。我的本地主持人不会显示错误而不是&#34; Page not work&#34; localhost当前无法处理此请求。&#34;

{foreach array_combine($p_titles, $p_prices, $p_ids) as $title => $price => $id}<!--SOME HTML-->{/foreach}

如何使用此方法组合3个或更多阵列。

1 个答案:

答案 0 :(得分:0)

首先,您标记了Javascript但是您在问题中显示的是PHP。

其次,array_combine只接受两个参数。 Documentation

要将array_combine用于三个数组,请执行以下操作:

$combinedArray = array_combine($p_titles, $p_prices);
$combinedArray = array_combine($combinedArray, $p_ids);

编辑:与普通PHP语法中的代码匹配的答案。

$result = array();

foreach($p_titles as $key => $value)
{
    $result[$value] = array('price' => $p_prices[$key], 'id' => $p_ids[$key]);
}

echo($result);

您可以访问以下数据:$result['title']['price']$result['title']['id'];

修改2 :以及Smarty代码。

我不熟悉Smarty语法,所以这可能不起作用:

{ $result = array(); }

{ foreach from=$p_titles key=key item=value }

    { $result[$value] = array('price' => $p_prices[$key], 'id' => $p_ids[$key]) }

{ /foreach }