Php 如何捕获$_POST['my_image']的所有输入名称?
我有名为my_image[url]和my_image[caption]的动态输入 '; } 阵列1{ [0]=> 阵列2{ [网址]=> string96http://localhost/theme/wp-content/uploads/2017/08/4e07dd2bd752b989e9b4687129982977.jpg [标题]=> string0测试文本 } } 如何在iSet中捕获$_POST['my_image']的所有图像和标题 已解决:Php 如何捕获$_POST['my_image']的所有输入名称?,php,Php,我有名为my_image[url]和my_image[caption]的动态输入 '; } 阵列1{ [0]=> 阵列2{ [网址]=> string96http://localhost/theme/wp-content/uploads/2017/08/4e07dd2bd752b989e9b4687129982977.jpg [标题]=> string0测试文本 } } 如何在iSet中捕获$_POST['my_image']的所有图像和标题 已解决: my_image[0][url] my_i
my_image[0][url]
my_image[0][caption]
my_image[1][url]
my_image[1][caption]
etc...
简言之,只有isset不会让你得到你需要的结果 由于my_image[url]将始终解析为$_POST['my_image']['url'],因此它确实会被覆盖。如果您使用[],php会自动为每次事件增加一个数字,但是在这种情况下,它不会将url和标题放在一起 如果要确保以提供的方式接收数据,可以将输入字段命名为:
url[]
caption[]
url[]
caption[]
etc
您还可以重塑数据,例如:
<?php
$data = array_map(function ($url, $caption) {
return compact('url', 'caption');
}, $_POST['url'], $_POST['caption']);
var_dump($data);
然后,您可以使用一些处理来组合php中的数据:
foreach ($data as $image) {
echo $image['caption'].': '.$image['url'].PHP_EOL;
}
当然,这需要被包装在一个isset&is数组中检查$\u POST['url']和$\u POST['caption']我读过关于函数数组映射和压缩的文章,非常感谢,现在我理解了你的答案,但是对于var\u dump$数据,它仍然返回null$_POST['url'];和$_POST['caption'];直接在数组中映射不起作用,现在可以了。万分感谢
url[]
caption[]
url[]
caption[]
etc
<?php
$data = array_map(function ($url, $caption) {
return compact('url', 'caption');
}, $_POST['url'], $_POST['caption']);
var_dump($data);
foreach ($data as $image) {
echo $image['caption'].': '.$image['url'].PHP_EOL;
}