【问题标题】:Combine more than 2 Smarty Arrays组合超过 2 个 Smarty 阵列
【发布时间】:2017-09-07 14:19:00
【问题描述】:

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

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

但是,如果我尝试向此解决方案添加另一个数组,它会中断。我的本地主机没有显示除“页面不工作”以外的错误,本地主机当前无法处理此请求。

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

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

【问题讨论】:

  • 在有人回答后更改您发布的内容并不酷。这会禁止搜索类似查询以找到正确答案的人。
  • 我认为更好地标记问题会帮助人们找到它。谢谢你的建议。
  • 我已经更新了我的答案,以提供您所要求的内容。

标签: php arrays smarty


【解决方案1】:

首先,您标记了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 代码。

我对@9​​87654330@ 语法不太熟悉,所以这可能不起作用:

{ $result = array(); }

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

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

{ /foreach }

【讨论】:

  • 在给出的示例中,我使用了方法 {foreach}。但是,我可以将它与您的解决方案一起使用。像以前一样从每个数组创建一个变量。 IE。 {$title}。
  • 我刚下班,无法更新我的答案。如果您等我回家,我很乐意为您提供与您的代码相符的答案。
  • 你能帮忙吗?
猜你喜欢
  • 1970-01-01
  • 2016-04-10
  • 2012-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-14
相关资源
最近更新 更多