2010-12-16 185 views
0

的价值,发现两个数组映射元素的值 有一个数组:从一个阵列,找了两个阵列映射,从一个数组元素

$A = Array ([0] => 0;0 
       [1] => 0;1 
       [2] => 1;0) 

将获得新的一个这样的: 我会喜欢这个

function split_map_arr($A){ 
     TODO 
    } 

功能TODO事情会返回两个数组这样

 idxs_main=array(0,1) 
     idxs_sub=array(array(0,1), 
         array(1) 
        ) 

我该怎么做?

+5

我不明白你的要求,你的代码是充满语法错误的。先解决它们,因为很难弄清楚你的意图。 – Palantir 2010-12-16 08:39:40

+0

你能重新表达我不明白的问题 – RageZ 2010-12-16 08:40:27

+0

@Palantir:看起来像伪代码 – BoltClock 2010-12-16 08:57:31

回答

2

如果我正确破译你的问题......

function split_map_arr($A){ 
    $idxs_main = array(); 
    $idxs_sub = array(); 
    foreach ($A as $a) { 
    list($main, $sub) = explode(';',$a); 
    if (array_key_exists($main, $idxs_main)) { 
     $idxs_sub[array_search($main, $idxs_main)][] = $sub; 
    } else { 
     $idxs_main[][] = $main; 
     $idxs_sub[][] = $sub; 
    } 
    } 
    return array($idxs_main, $idxs_sub); 
} 

// usage 
$A = array(0 => '0;0', 1 => '0;1', 2 => '1;0'); 
list($idxs_main, $idxs_sub) = split_map_arr($A);