2

このコードを使用して、値が配列に存在するかどうかを確認します。

if (!in_array(array("Product code","Price","Supplier","Cost Price"), $data)) {
        die("You are missing fields");
     }

正常に動作しますが、存在しない値を返すようにしたいので、配列が次の場合:

$data = array("Price","Supplier","Cost Price");

PHPは「製品コードが配列にありません」を返します

4

3 に答える 3

4

array_diff を使用して、複数の配列の比較で違いを見つけます。

    $array1 = array("a" => "Product code","Price","Supplier","Cost Price");
if (!in_array($array1, $data)) {
        die("You are missing :" . print_r(array_diff($array1, $data)));
     }

PHPマニュアルから:

<?php
$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);

print_r($result);     /* This will print: BLUE */
?>

詳細はこちら: http://php.net/manual/en/function.array-diff.php

于 2012-11-05T10:56:24.360 に答える
0

array_diff_assocを使用できます-追加のインデックスチェックで配列の違いを計算します

<?php
  $array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
  $array2 = array("a" => "green", "yellow", "red");
  $result = array_diff_assoc($array1, $array2);
   print_r($result);
?>

またはin_arrayのように使用します

$os = array("Mac", "NT", "Irix", "Linux");
if (in_array("Irix", $os)) {
    echo "Got Irix";
}

すべての配列をチェックするには、次のようなものを使用できます

foreach($array as $val){
if (in_array($val, $os)) {
        echo "Got Irix";
    }

}else{
     //show error

}
于 2012-11-05T10:55:59.173 に答える
0

http://www.php.net/manual/en/function.array-diff.phphttp://www.php.net/manual/en/function.array-intersect.phpをご覧ください。これらの関数を使用すると、2 つの配列の相違点 (または共通部分) を確認し、相違点 (または共通部分) を繰り返し処理して、ユーザーに欠落/共通点を正確に伝えることができます。

于 2012-11-05T10:56:31.660 に答える