2017-01-24 27 views
-4

我有2〜3串 例子1:PHP:如何在PHP中兩個字符串之間獲得交點

$a1 = 'a & b & c'; 
$a2 = 'b & c'; 
$a3 = 'a & b & c'; 

我想出來把作爲交叉點是

$result = 'b & c' if there is no intersection it should return blank 

u能請爲上述場景提供解決方案

+1

分解成數組並使用[array_intersect](http://php.net/manual/en/function.array-intersect.php)? – Peon

+1

請說明你自己的努力和解釋問題..這不是一個編碼服務 – JimHawkins

+0

嘿,我知道這是不是一個編碼服務@JimHawkins但我試圖從我自己的努力,從昨天.so想到得到解決方案 –

回答

3

在組合使用array_intersectexplodeimplodearray_map的一種方法:

$a1 = 'a & b & c'; 
$a2 = 'b & c'; 
$a3 = 'a & b & c'; 

$result = implode(' & ', 
    call_user_func_array('array_intersect', 
     array_map(function($a) { 
      return explode(' & ', $a); 
     }, 
     [$a1, $a2, $a3]) 
    ) 
); 

echo($result); 

或者如果你想直接傳遞數組:

$arr = ['a & b & c', 'b & c', 'a & b & c']; 

$result = implode(' & ', 
    call_user_func_array('array_intersect', 
     array_map(function($a) { 
      return explode(' & ', $a); 
     }, 
     $arr) 
    ) 
); 

echo($result); 
+1

完美答案@ Robby –

+0

嗨,如果我有一個數組我可以做什麼像陣列([0] => a&b&c [1] => a&b [2] => b [3] => a&b &c) –

+0

這是一樣的。我傳入數組''[$ a1,$ a2,$ a3]'在我的方法中。 –

0

使用陣列相交併對其唯一

<?php 
$a1 = 'a & b & c'; 
$a2 = 'b & c'; 
$a3 = 'a & b & c'; 
$pieces1 = str_word_count($a1, 1); 
$pieces2 = str_word_count($a2, 1); 
$pieces3 = str_word_count($a3, 1); 
$result=array_intersect(array_unique($pieces1), array_unique($pieces2),array_unique($pieces3)); 
print_r ($result); 
?> 

O/P

陣列([1] => B [2] => C)

相關問題