2013-02-28 109 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

相關問題