我有一个表单,其中包含名称为item1,item2,item13,item43等的多个字段,每次这些字段都不同,因为它们使用AJAX填充在表单中.
当用户提交时,我需要执行以下操作:
foreach($_POST['itemX']['tagsX'] as $tag){
inserttag($tag, X);
}
Run Code Online (Sandbox Code Playgroud)
其中X = 1,2,13,43等.我如何迭代$ _POST值并仅对其名称以"item"开头的值后跟X标识符的值执行上述操作?
基于Piontek答案的解决方案:
发布的数据具有以下格式:
[item38] => Array([tags38] => Array([0] => aaa,[1] => bbb))
[item40] => Array([tags40] => Array([0] => ccc,[1] => ddd))
[item1] => Array([tags1] => Array([0] => eee,[1] => zzz))
Run Code Online (Sandbox Code Playgroud)
这就是我解析和使用它的方式:
foreach($_POST as $key => $value){
if (strstr($key, 'item')){
$id = str_replace('item','',$key);
foreach($_POST['item'.$id]['tags'.$id] as $tag){
inserttag($tag, $id);
}
}
}
Run Code Online (Sandbox Code Playgroud)
Kyl*_*yle 29
foreach($_POST as $key => $value)
{
if (strstr($key, 'item'))
{
$x = str_replace('item','',$key);
inserttag($value, $x);
}
}
Run Code Online (Sandbox Code Playgroud)
您可以通过循环$_POST使用foreach这样的:
foreach ($_POST as $key => $value) { ... }
Run Code Online (Sandbox Code Playgroud)
在循环中,您可以评估循环找到的每个键是否符合您的条件.像这样的东西:
foreach ($_POST as $key => $value){
if (substr($key, 0, 4) == "item") {
$identifier = substr($key, 4);
if (isset($value['tag' . $identifier])) { inserttag('tag', $identifier); }
}
}
Run Code Online (Sandbox Code Playgroud)
我不是百分之百确定实际上什么是真实的,而你的问题只是一个占位符.也许我拿了一些东西,但事实并非如此.您可能需要更详细地解释您的愿望.;)