2012-02-14 80 views
0
Array 
(
    [0] => 46-sen1-Grid1-138 
    [1] => 47-sen2-Grid1-138 
    [2] => 50-sen5-Grid2-144 
    [3] => 51-sen6-Grid2-144 
) 

如何使上述数组成为以下内容?将阵列更改为另一种格式

Array 
(
    [138] => Array 
     (
      [0] => 46-sen1 
      [1] => 47-sen2 
     ) 

    [144] => Array 
     (
      [0] => 50-sen5 
      [1] => 51-sen6 
     ) 

) 
+3

你有什么尝试?迭代元素并提取相关信息应该这样做。 – 2012-02-14 10:57:37

回答

1
$from = array(
    '46-sen1-Grid1-138' 
    '47-sen2-Grid1-138', 
    '50-sen5-Grid2-144', 
    '51-sen6-Grid2-144' 
); 

$to = array(); 

foreach($from as $value) { 
    $elements = explode('-',$value); 
    if (!isset($to[$elements[3]])) $to[$elements[3]] = array(); 
    $to[$elements[3]][] = $elements[0].'-'.$elements[1]; 
} 
0

循环通过它,分析它,并产生一个新的。

这里有一个如何可以做到这一点一个简单的例子:

$arr = array("46-sen1-Grid1-138", 
    "47-sen2-Grid1-138", 
    "50-sen5-Grid2-144", 
    "51-sen6-Grid2-144"); 

foreach ($arr as $item) { 
    $arr_n[substr($item,-3)][] = substr($item,0,7); 
} 

var_dump($arr_n); 
0

您可以使用下面的代码,并请不要涂抹于数组键和值检查,我刚才写的基本结构

$a[0] =' 46-sen1-Grid1-138'; 
    $a[1] = '47-sen2-Grid1-138'; 
    $a[2] = '50-sen5-Grid2-144'; 
    $a[3] = '51-sen6-Grid2-144'; 

    $KeyArray=array(); 
    foreach($a as $row) 
    { 
    $check=explode('-',$row); 
    print_r($check); 

    $KeyArray[$check[3]][] = $check[0].'-'.$check[1]; 

    } 

    print_r($KeyArray); 
相关问题