-2

例如有 3 个数组。随着$_POST数组看起来像

$_POST['row_id']- $_POST['row_id'][0], $_POST['row_id'][1], 等等。

$_POST['date_day']- $_POST['date_day'][0], $_POST['date_day'][1], 等等。

$_POST['date_month']- $_POST['date_month'][0], $_POST['date_month'][1], 等等。

想要遍历$_POST['row_id'],然后如果$_POST['date_day']并且$_POST['date_month']非空,则创建$if_non_empty值为 1 的新数组。

数据如下:

$_POST['row_id'][0]是 1

$_POST['row_id'][1]是 2

$_POST['date_day'][0]是 1

$_POST['date_day'][1]为空白/空

$_POST['date_month'][0]是 4

$_POST['date_month'][1]是 4

创建此代码

foreach ($_POST['row_id'] as $i => $row_id) {
if ( (strlen($_POST['date_day']) >= 1) and (strlen($_POST['date_month']) >= 1) ) {

$if_non_empty = 1;

print_r ($if_non_empty);
echo ' $if_non_empty<br>';
}

}

所以我的期望

代码第一次通过foreach ($_POST['row_id'] as $i => $row_id) {

然后第一次通过if ( (strlen($_POST['date_day']) < 1) and (strlen($_POST['date_month']) < 1) ) {

as$_POST['date_day'][0]$_POST['date_month'][0]是非空的(值 1 和 4),然后创建值为 1 的数组 $if_non_empty[0]。

但是代码什么也没显示。尝试使用空值和非空值。

这个

print_r ($if_non_empty);
echo ' $if_non_empty<br>';

什么都不显示。

我的最终目标是这样的

1)使用上面的代码我想创建数组$if_non_empty。取决于$if_non_empty我只能管理具有非空值的数组。

2)然后遍历$if_non_empty并将具有非空值的数组插入到mysql中。

有多个输入行,每行具有多个值。

一行中的某些输入字段可能为空。我不想插入这样的输入行。

这是我尝试创建的解决方案,以仅插入所有输入字段均非空的行。

4

2 回答 2

1

看看php手册。

strlen 成功时返回字符串的长度,如果字符串为空则返回 0。

最好使用空函数http://php.net/manual/en/function.empty.php

于 2013-05-21T06:41:39.020 回答
0

这是有问题的:

if ( (strlen($_POST['date_day']) < 1) and (strlen($_POST['date_month']) < 1) ) {

你刚才说$_POST['date_day']and$_POST['date_month']是数组,所以我不知道你用这个 if 语句实现了什么。你的意思是这样做吗?

if ( (count($_POST['date_day']) < 1) && (count($_POST['date_month']) < 1) ) {

有关strlen的更多信息,它将字符串作为参数,而不是数组。也

希望有帮助。

于 2013-05-21T06:39:58.950 回答