1

文字列にデータを保存しています。たとえば、$string='12';
「12」は2つのデータを表し12

3つの列に、同じIDが格納されており、配列は次のようになります。

ex1: $array= ('num1' => 1, 'num2' => 2, 'num3' => )
ex2: $array= ('num1' => 5, 'num2' => 4, 'num3' => 3)

数字が両方の場所に存在する場合、どうすればこれらを比較してtrueを返すことができますか?

例:上記の例を使用すると:ex1:の 12場合return TRUE

34ex2の場合return FALSE345return TRUE

4

4 に答える 4

1

これを試してください:array_intersect()を使用できます。

$string = '12';

//split string into array of characters
$arr = str_split($string);

//testing columns
$compare1 = array('num1' => 1, 'num2' => 2, 'num3' => '');
$compare2 = array('num1' => 5, 'num2' => 4, 'num3' => 3);

//returns an array containing all the values of $arr inside $compare1
$int1 = array_intersect($arr, $compare1);

//returns an array containing all the values of $arr inside $compare2
$int2 = array_intersect($arr, $compare2);

//if $arr contents are in $compare1 return true, otherwise false
echo ! empty($int1);

//if $arr contents are in $compare2 return true, otherwise false
echo ! empty($int2);
于 2013-02-28T19:17:58.683 に答える
1

in_array()関数を試してください http://php.net/manual/en/function.in-array.php

しかし、なぜ345がtrueを返すのかわかりません

于 2013-02-28T19:21:07.703 に答える
1

これは機能します。以下の結果を参照してください:(trueを返すには、値が両方の配列に存在する必要があります。

  $result = true;
    $string1 = '43';
    $string = str_split($string1);
    $example1 = array('num1' => 1, 'num2' => 2, 'num3' => 3,  'num4' => 4, 'num5' => 5);
    $example2 = array('num1' => 5, 'num2' => 4, 'num3' => 3);
    foreach ($string as $st) {
        if((in_array($st, $example1) && in_array($st, $example2))  && $result == true){
            $result = true; //true
        } else {
            $result = false;
        }
    }
    if($result == true){
            echo 1; //true
        } else {
            echo 0; //false
        }
    exit;
    //Test Results:
    //$string1 = '12'; //result 0
    //$string1 = '34'; //result 1
    //$string1 = '55'; //result 1
    //$string1 = '43'; //result 1
于 2013-02-28T20:28:45.457 に答える
1

私はパーティーに遅れています...しかし、私はすでに始めていたので、そうかもしれません!これが私の解決策です:

function yayOrNay($array, $string) {

    $stringArray = str_split($string);

    $arrayDiff = array_diff($stringArray, array_values($array));

    return empty($arrayDiff);
}

LIVE DEMO

于 2013-02-28T23:07:53.453 に答える