0

こんにちは、特別な関数で 2 つの配列を交差させる必要があります。2 つの配列は次のとおりです。

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 
)

配列 A の値の先頭を 2 回確認する必要があります。元。[0] => 104 -20_140 そして、最初の ' 104 ' が配列 B に存在するかどうかを確認します。そうでない場合、配列 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で計算されます

すべての助けをありがとう!

4

2 に答える 2

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;
        }
    }
}

コードパッドの例

于 2011-09-08T15:53:12.047 に答える
1

おそらく、本当に必要なのはarray_uintersectです。これにより、値が交差するかどうかを確認する方法に関するロジックを含むカスタムコールバックを提供するオプションが提供されます。

http://uk3.php.net/manual/en/function.array-uintersect.php

コールバックでは、substrまたはpreg関数の1つを使用して、最初の「-」の前に最初のセクションを解析する必要があります。

于 2011-09-08T15:53:44.900 に答える