我想要做的是默认$names
阵列值,如果$_POST[]
值$names
为空,则其值为并行$urls
值。 (这是基于空的$_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]
。
任何意见,意见或其他信息将非常感谢:)!
谢谢丹:)。空!($ _ POST ['name_'。$ i])? $ _POST ['name_'。 $ i]:$ _POST ['url_'。 $ i];'作为'if()'在它自身中起作用,如果是这样,你介意告诉我它叫什么“它”(不知道如何定义它)? – Avicinnian
它被称为[三运营商](http://www.php.net/manual/en/language.operators.comparison.php#language.operators.comparison.ternary)。是的,它相当于'if(!empty($ _ POST ['name_'。$ i])$ names [$ i] = $ _POST ['name_'。$ i]; else $ names [$ i] = $ _POST [ 'url_'。$ i];' –
因此,我应该去掉'$ names = array()',因为它定义了空值和非空值的数组值?对不起我的问题:),只是想确保我理解100%。 – Avicinnian