我要做的是默认$names
数组值为它的并行$urls
值,如果$names
的$_POST[]
值为空。(这是基于一个空$_POST[]
将返回空的假设,如果我错了,有人请纠正我)。
下面是我的代码:
$urls = array(1 => $_POST['url_1'], 2 => ['url_2'], 3 => $_POST['url_3'], 4 => $_POST['url_4'], 5 => $_POST['url_5']);
$names = array(1 => $_POST['name_1'], 2 => ['name_2'], 3 => $_POST['name_3'], 4 => $_POST['name_4'], 5 => $_POST['name_5']);
if(empty($names[1])) { $names[1] = $_POST['url_1']; }
if(empty($names[2])) { $names[2] = $_POST['url_2']; }
if(empty($names[3])) { $names[3] = $_POST['url_3']; }
if(empty($names[4])) { $names[4] = $_POST['url_4']; }
if(empty($names[5])) { $names[5] = $_POST['url_5']; }
我想过使用foreach()
循环,但我真的不知道这将如何工作,因为每个单独的数组值,例如$names[1]
必须设置为$urls[1]
,如果为空。
for ($i = 1; $i <= 5; $i++) {
$names[$i] = !empty($_POST['name_' . $i]) ? $_POST['name_' . $i] : $_POST['url_' . $i];
}
for ($i = 1; $i <= 5; $i++) {
if (empty($names[$i])) {
$names[$i] = $_POST['url_' . $i];
}
}
但请记住,您还需要检查$_POST['url_' . $i']
是否存在,并使用附加的isset()
检查
foreach ($names as $k=>$v){
if(empty($v)){
$names[$k] =$urls[$k];
// or $names[$k] = $_POST['url_' . $k'];
}
}
$urls = array(1 => $_POST['url_1'], $_POST['url_2'], $_POST['url_3'], $_POST['url_4'], $_POST['url_5']);
$names = array(1 => $_POST['name_1'], $_POST['name_2'], $_POST['name_3'], $_POST['name_4'], $_POST['name_5']);
for ( $c = 1; $c <= 5; $c++ )
{
if(empty($names[$c]))
{
$postKey = 'url_'.$c;
$names[$c] = $_POST[$postKey];
}
}