Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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_Laravel_Loops - Fatal编程技术网

PHP根据值连续循环数组

PHP根据值连续循环数组,php,laravel,loops,Php,Laravel,Loops,我有一个令人心碎的问题,我自己似乎无法解决。目前正在webshop中保存表单输入。数据: "personalisation" => array:3 [▼ 0 => "embroidery" 1 => "printing" 2 => "embroidery" ] "repeat" => array:2 [▼ 0 => "true" 1 => "true" ] "selectedColors" => a

我有一个令人心碎的问题,我自己似乎无法解决。目前正在webshop中保存表单输入。数据:

"personalisation" => array:3 [▼
    0 => "embroidery"
    1 => "printing"
    2 => "embroidery"
  ]
 "repeat" => array:2 [▼
    0 => "true"
    1 => "true"
  ]
"selectedColors" => array:1 [▼
    0 => "3"
  ]

我在这里遇到的问题是:我需要循环通过个性化阵列来添加到我的数据库中。对于刺绣,将链接重复值,对于打印,将链接所选颜色。如何循环Personlision数组并匹配其他数组中的值

我想不出除了使用助手数组以外的任何其他方法

可能是 数组(“刺绣”=>“重复”,“打印”=>“选定颜色”)

然后开始通过个性化循环,具体取决于在helper数组中将其用作键的值,最后从数组中获取所需的值

第一次迭代:0/刺绣->刺绣/重复->重复/真实

第二次迭代:1/打印->打印/选定颜色->选定颜色/

我真的不推荐这样设计表单,你基本上只是把一堆乱七八糟的东西发送到你的后端,没有任何关联

您可以通过过滤个性化数组并重新索引来“更正”关联,以便键与其他数组匹配

$embroderies = array_values(array_filter($array['personalisation'], function($item) {
   return $item === 'embroidery';
}));

foreach($emborderies as $key => $value) {
    // get value from $array['repeat'][$key];   
}

似乎表单输入的设计很糟糕。同意。很遗憾,我无法更改表单输入:-(这是来自
个性化
的键,表示
选择的颜色中的值吗?@Leorent在选择的颜色中没有值是
重复
中的0和1的颜色ID与什么确切对应?个性化中第一次和第二次出现的
刺绣
,打印/选择的颜色相同?然后它将很可能最有意义的是,您首先按值将个性化“拆分”为两个子数组,[0=>刺绣,1=>刺绣]和[0=>打印],这样您就可以使用这些“新”索引分别访问repeat/selectedColors中的对应值…