2013-02-28 127 views
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: 12return TRUE

34return FALSE 为EX2: 345return TRUE

+0

为什么'34'返回FALSE? – 2013-02-28 19:33:34

+0

12和34是例如1和345例如是2 – GGio 2013-02-28 19:34:26

回答

1

这工作,请参见下面的结果:(值必须存在两个数组

$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 
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); 
+0

谢谢。这里的概念有助于解决我的问题 – 2013-02-28 20:46:17

1

尝试in_array()函数 http://php.net/manual/en/function.in-array.php

,但我不明白为什么345会返回true

+0

因为array2包含3,4和5 – GGio 2013-02-28 19:22:14

+0

是的,我很抱歉。 IT写得令人困惑。前2个'return'示例针对示例1,最后一个示例2针对示例2 – 2013-02-28 19:26:29

+0

为真,但他表示如果两个位置都存在$ string – ElefantPhace 2013-02-28 19:27:13

1

我来晚了......但我已经开始了,所以不妨!这里是我的解决方案:

function yayOrNay($array, $string) { 

    $stringArray = str_split($string); 

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

    return empty($arrayDiff); 
} 

LIVE DEMO

相关问题