Php 如何在没有警告的情况下循环此数组
由于joomla cms中的限制,我不得不想办法在productpage(用于蛋糕)的表单中添加字段 所以我想到了以下几点 这是我的起始字符串:Php 如何在没有警告的情况下循环此数组,php,arrays,loops,Php,Arrays,Loops,由于joomla cms中的限制,我不得不想办法在productpage(用于蛋糕)的表单中添加字段 所以我想到了以下几点 这是我的起始字符串: || Taart grootte*30cm:40cm:50cm |Kleur*rood:blauw:groen:wit |Optie 3*optie1:optie2:optie3 我首先在|上分解,从productpage的其余部分拆分自定义字段。然后我在|上分解以分离每个自定义添加的字段,然后在*上分解结果以分离字段名称中的选择选项。所有这些都很好
||
Taart grootte*30cm:40cm:50cm
|Kleur*rood:blauw:groen:wit
|Optie 3*optie1:optie2:optie3
我首先在|
上分解,从productpage的其余部分拆分自定义字段。然后我在|
上分解以分离每个自定义添加的字段,然后在*
上分解结果以分离字段名称中的选择选项。所有这些都很好,但现在我想通过在:
上展开来将选项彼此分开
变量$lines
包含我需要的信息。该数组如下所示:
Array ( [0] =>
Taart grootte [1] => 30cm:40cm:50cm
) Array ( [0] => Kleur [1] => rood:blauw:groen:wit
) Array ( [0] => Optie 3 [1] => optie1:optie2:optie3
)
但是,我只需要带有键[1]
(选项)的数据。我不能使用:
foreach($lines[1] as $result){
}
因为它给出:警告:为中的foreach()提供的参数无效。
如何分割选项,使数据对我可用
我尝试了以下方法:
foreach($lines as $result){
$resultaat = explode(':', $result);
}
foreach($resultaat as $final){
$finalvar .= $final;
}
echo $finalvar;
但其结果是:
相同的选项显示多次,但在字符串中仅显示一次
我的全部代码:
我认为您对所需的所有不同分解和分隔符感到困惑。下面的代码段将所有内容拆分为一个带有两个键的$options
数组:name
,它是一个包含选项名称的字符串,而values
是一个选项值数组:
Array
(
[0] => Array
(
[name] => Taart grootte
[values] => Array
(
[0] => 30cm
[1] => 40cm
[2] => 50cm
)
)
[1] => Array
(
[name] => Kleur
[values] => Array
(
[0] => rood
[1] => blauw
[2] => groen
[3] => wit
)
)
[2] => Array
(
[name] => Optie 3
[values] => Array
(
[0] => optie1
[1] => optie2
[2] => optie3
)
)
)
请在这里复制您的问题@Ionut我正在尝试使用一个硬编码字符串,并在我的脚本中使用它,但当我运行脚本时,我只看到php代码的回声,好像没有安装php。也不知道在哪里可以得到一个可共享的链接。太棒了,代码现在干净多了!但是如何确保每个selectbox只显示一次值呢?我添加了我在问题中使用的代码。当我使用
$test='.$option'.'时代码>每个选择元素只显示一个选项。当我在=符号前添加一个点时,第一个选择框有正确的选项,但是第二个选择框有第一个框的所有选项和他自己的选项,这对后面的每个选择元素都是继续的。你需要循环每个选项的值数组。所以你需要一个循环中的一个循环。我正在这样做,但每个新字段仍然具有以前字段的所有值。我得到的代码与我的问题(底部部分)中的代码完全相同。这是因为您在循环开始时覆盖了$options
变量的值。有道理,我重命名了变量,但结果仍然相同。也许我误解了你的意思,但你指的是上一个循环之前的变量(当然还有循环数组变量本身)?
Array
(
[0] => Array
(
[name] => Taart grootte
[values] => Array
(
[0] => 30cm
[1] => 40cm
[2] => 50cm
)
)
[1] => Array
(
[name] => Kleur
[values] => Array
(
[0] => rood
[1] => blauw
[2] => groen
[3] => wit
)
)
[2] => Array
(
[name] => Optie 3
[values] => Array
(
[0] => optie1
[1] => optie2
[2] => optie3
)
)
)