Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在没有警告的情况下循环此数组_Php_Arrays_Loops - Fatal编程技术网

Php 如何在没有警告的情况下循环此数组

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的其余部分拆分自定义字段。然后我在|上分解以分离每个自定义添加的字段,然后在*上分解结果以分离字段名称中的选择选项。所有这些都很好

由于joomla cms中的限制,我不得不想办法在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
                )

        )

)