-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) 上記のコードで、 array を作成したいと思います$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']$_POST['date_month']は配列なので、この if ステートメントで何を達成しているのか本当にわかりません。これをするつもりですか?

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

配列ではなく、文字列をパラメーターとして受け取る strlenの詳細。も数える

それが役立つことを願っています。

于 2013-05-21T06:39:58.950 に答える