0

ほとんどの人にとって、これは簡単なことだと思いますが、私は多次元配列を独学しようとして頭を壁にぶつけています。

$_FILES["Photo"]["name"]空の文字列が含まれているかどうかを確認したいだけで、if ステートメントの下のコードが実行されます。

現在、これは私のelseステートメント(表示されていません)と同様に機能しますが、これを書くためのよりクリーンな方法が必要ですか??

どうもありがとう。

if (empty($_FILES["Photo"]["name"][0]) && empty($_FILES["Photo"]["name"][1]) && empty($_FILES["Photo"]["name"][2])) {

    $query = "INSERT INTO lot (lotnumber, lottitle, lotdescription, datecreated, lastmodified) VALUES" . 
        "('$lotnumber', '$lottitle', '$lotdescription', NULL, NULL)";

    if (!$mysqli->query($query)) {
        echo '<p class="warning">Error executing INSERT query: (' . $mysqli->errno . ') ' . $mysqli->error . "</p>";
    }
    else
    {
        echo '<p class="success">The lot has been added to the directory.' . "</p>" . HTML_LINEBREAK;
    }
}
4

2 に答える 2

2

を使用できますが、array_filter()あなたがしていることに問題はありません。

$test_array = array_filter($_FILES['Photo']['name'], function($var) {
    return empty($var);
});

if (count($test_array) === 3) {
   $query = ... // the rest of your code
}

もちろん、これは配列に 3 つの要素しかないことを前提としています。最初の 3 つの要素のみをチェックする場合は、次のarray_slice()ように追加します。

$test_array = array_filter(array_slice($_FILES['Photo']['name'], 0, 3), function($var) {
    return empty($var);
});
于 2013-08-12T17:50:36.003 に答える
1

「名前」レベル内のキーをカウントするスクリプトがあります。

$count = sizeof($name_of_array->Photo->name);

次に for ループ チェックで、キーが空かどうかを確認します。

for($i = 0; $i <= $count; $i++)
{
    if(empty($name_of_array->Photo->name[$i])
    {
        ... continue code
    }
    else
    {
        ... continue code
    }
}
于 2013-08-12T17:48:01.217 に答える