1

次の構造の配列が必要です。

Array
(
[www.example.com] => Array
    (
        [0] => http://www.example.com/
        [1] => http://www.example.com/something.html
        [2] => http://www.example.com/anything.html
    )

[www.beispiel.com] => Array
    (
        [0] => http://www.beispiel.com/product-services/
        [1] => http://www.beispiel.com/non-disclosure-agreement/
    )
 )

入力配列として、次の2つがあります

Array ( [0] => http://www.example.com/
        [1] => http://www.example.com/something.html
        [2] => http://www.example.com/anything.html
        [3] => http://www.beispiel.com/product-services/
        [4] => http://www.beispiel.com/non-disclosure-agreement/
      ) 

Array ( [0] => www.example.com [1] => www.beispiel.com ) 

現時点で私はこのようなものを持っています:

Array
(
[0] => Array
    (
        [www.example.com] => http://www.example.com/
    )

[1] => Array
    (
        [www.example.com] => http://www.example.com/something.html
    )

[2] => Array
    (
        [www.example.com] => http://www.example.com/anything.html
    )

[3] => Array
    (
        [www.beispiel.com] => http://www.beispiel.com/product-services/
    )

[4] => Array
    (
        [www.beispiel.com] => http://www.beispiel.com/non-disclosure-agreement/
    )

)

それは可能ですか、それともphpに関するいくつかの情報を見逃していますか(たとえば、キーは解析されたURL(ホスト)ではありませんでした)?

4

2 に答える 2

1

試す:

$arr1 = array('http://www.example.com/','http://www.example.com/something.html','http://www.beispiel.com/product-services/' ...); // 1st input array
$arr2 = array('www.example.com', 'www.beispiel.com'); // 2nd input array
$arr1_val = array_values($arr1);
foreach($arr2 as $v) {
 foreach($arr1 as $m) {       
   if(strpos($m, $v) !== FALSE)
    $new_arr[$v][] = $m;
  }      
}

デモ

于 2012-12-06T17:46:26.287 に答える
0

それは不可能。変数の場合と同じように、配列キーにも同じ命名規則が適用されます。

于 2012-12-06T17:41:29.120 に答える