你需要在一个特殊的函数中交叉两个数组。这两个数组是:
Array A (
[0] => 104-20_140.1 [1] => 104-10_136.1 [2] => 104-40_121.1 [3] => 104-41_122.1
[4] => 200-42_951.1 [5] => 200-43_952.1 [6] => 200-44_123.1 [7] => 200-45_124.1
[8] => 300-46_125.1 [9] => 300-47_126.1 [10] => 300-48_127.1 [11] => 300-49_128.1
[9] => 380-56_125.1 [10] => 380-57_126.1 [11] => 380-58_127.1 [12] => 380-59_128.1
)
Array B (
[0] => 200 [1] => 300
)
我需要两个看看Array A的值的开头。防爆。 [0] => 104 -20_140并查看数组B中是否有“ 104 ”开头。如果不是,则数组A应将其从结果数组C中删除。
数组A和B的输出应具有:
Array C (
[0] => 200-42_951.1 [1] => 200-43_952.1 [2] => 200-44_123.1 [3] => 200-45_124.1
[4] => 300-46_125.1 [5] => 300-47_126.1 [6] => 300-48_127.1 [7] => 300-49_128.1
)
所有都应以Php
计算 感谢所有的帮助!答案 0 :(得分:1)
试试这个:
function startsWith($haystack, $needle) {
$length = strlen($needle);
return (substr($haystack, 0, $length) === $needle);
}
$C = array();
foreach ($A as $ka => $va) {
foreach ($B as $kb => $vb) {
if (startsWith($va, $vb)) {
$C[] = $va;
}
}
}
答案 1 :(得分:1)
有可能,你真正需要的是array_uintersect。这将提供一个提供自定义回调的选项,其中包含有关如何检查值是否相交的逻辑。
http://uk3.php.net/manual/en/function.array-uintersect.php
在回调中,您需要使用substr或其中一个preg函数解析第一个“ - ”之前的第一部分。