2012-12-06 74 views
1

我需要以下結構的陣列:需要使用URL來填充在php數組作爲鍵

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/ 
    ) 
) 

作爲輸入數組我有以下兩種

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(主機))?

+1

是的,這是可能的。但你必須嘗試一些。 –

+0

這聽起來像你問如何從URL中獲取主機名。看看PHP中的'parse_url'函數。 –

+0

我知道這一點;-) – theode

回答

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

Demo

+0

謝謝,真的很有幫助 – theode

0

這是不可能的。相同的命名規則適用於數組鍵,就像變量一樣。