组数组值

时间:2011-12-14 11:49:22

标签: php arrays

我有一个如下所示的数组:

BLOCO - BIFOCAL
BLOCO - MULTIFOCAL
MATERIAL - CRISTAL INCOLOR
MATERIAL - CRISTAL FOTOCROMATICO
MATERIAL - RESINA
MATERIAL - POLICARBONATO
MATERIAL - TRIVEX
TRATAMENTOS - INCOLOR
TRATAMENTOS - ANTI RISCO
TRATAMENTOS - ANTI REFLEXO

我需要将BLOCO,MATERIAL和TRATAMENTOS分组,将来可能会有其他人。

提前感谢您的帮助。

  

更新

Array ( [0] => MaterialVO Object ( [NOME_PROPRIEDADE] => BLOCO [VALOR] => VISAO SIMPLES ) [1] => MaterialVO Object ( [NOME_PROPRIEDADE] => BLOCO [VALOR] => BIFOCAL ) [2] => MaterialVO Object ( [NOME_PROPRIEDADE] => BLOCO [VALOR] => MULTIFOCAL ) [3] => MaterialVO Object ( [NOME_PROPRIEDADE] => MATERIAL [VALOR] => CRISTAL INCOLOR ) [4] => MaterialVO Object ( [NOME_PROPRIEDADE] => MATERIAL [VALOR] => CRISTAL FOTOCROMATICO ) [5] => MaterialVO Object ( [NOME_PROPRIEDADE] => MATERIAL [VALOR] => RESINA ) [6] => MaterialVO Object ( [NOME_PROPRIEDADE] => MATERIAL [VALOR] => POLICARBONATO ) [7] => MaterialVO Object ( [NOME_PROPRIEDADE] => MATERIAL [VALOR] => TRIVEX ) [8] => MaterialVO Object ( [NOME_PROPRIEDADE] => TRATAMENTOS [VALOR] => INCOLOR ) [9] => MaterialVO Object ( [NOME_PROPRIEDADE] => TRATAMENTOS [VALOR] => ANTI RISCO ) [10] => MaterialVO Object ( [NOME_PROPRIEDADE] => TRATAMENTOS [VALOR] => ANTI REFLEXO ) ) 1 

1 个答案:

答案 0 :(得分:0)

您可以将左侧用作数组键,例如

$new_arr = array();
$arr = ...
foreach ($arr as $val)
{
  $tmp = explode(' - ', $val); // assuming " - " is exist in all
  if (empty($new_arr[$tmp[0]])
  {
    $new_arr[$tmp[0]] = array();
  }
  $new_arr[$tmp[0]][] = $tmp[1];
}

// to get all groups
array_keys($new_arr);

// to get each element under the group
/* which is another loop */