我有两个数组$ t1和$ t2。当我打印出来时,我得到以下内容:
T1:
Array ( [0] => Christina Aguilera [1] => Iron Maiden [2] => Bob Marley )
T2:
Array ( [0] => Bob Marley )
我正在尝试通过array_intersect函数获取数组的公共元素,我正在使用以下行:
$intersection = array_intersect($t1,$t2);
但是,出于某种原因,当我打印结果$ intersection时,我得到:
Array ( )
有人能看出它出了什么问题吗?我的功能代码如下,但我认为上述内容应足以解决问题。
// For extra information
function findMutualInterests($_uProArray, $_tProArray)
{
$_commonDetails = null;
$_fieldNames = array_keys($_uProArray[0]);
$_uProValues = array_values($_uProArray[0]);
$_tProValues = array_values($_tProArray[0]);
//print_r($_uProValues);
// Iterate over the arrays and find ones in common
for ($i = 0; $i < count($_uProValues); $i++) {
$t1 = explode(',',$_uProValues[$i]);
print_r($t1);
$t2 = explode(',',$_tProValues[$i]);
print_r($t2);
$intersection = array_intersect($t1,$t2);
print_r($intersection);
$_commonDetails[$_fieldNames[$i]] = implode($intersection);
}
return $_commonDetails;
}
编辑:我想我会指出上面显示的$ t1和$ t2的输出是以下函数的单次迭代的输出。我只是选择那个作为例子。
答案 0 :(得分:2)
Your code works fine,尝试修剪输入字符串。
答案 1 :(得分:1)
你的代码有一个很大的错误。
如果$_tProValues
中的元素多于$_uProValues
中的元素,则不会测试$_tProValues
数组中的所有可能性。那么你将无法测试所有可能性。这里发生的是,你没有测试所有可能性。
答案 2 :(得分:0)
检查上面的评论,因为这很好用:
<?php
$a = array (
0 => 'Christina Aguilera',
1 => 'Iron Maiden',
2 => 'Bob Marley'
);
$b = array (
0 => 'Bob Marley'
);
$intersect = array_intersect( $a, $b );
print_r( $intersect );
?>
输出:
Array
(
[2] => Bob Marley
)
答案 3 :(得分:0)
**Check the code it is very useful for you ,because this works fine:**
$final_arr = [];
foreach ($a as $a_val) {
foreach ($b as $b_val) {
if(in_array(strtolower($a), array_map('strtolower', $b_val))){
$final_arr[] = $b_val;
}
}
}