2012-02-03 53 views
2

我有以下阵列或多个阵列:PHP:将数组拆分为基于自定义函数的块?

$bigArray = array(
     array(
      id = 3, 
      text = "Hello World" 
      ), 
     array(
      id = 3, 
      text = "Taco" 
      ), 
     array(
      id = 10, 
      text = "Foo" 
      ), 
     array(
      id = 10, 
      text = "Bar" 
      ), 
     array(
      id = 10, 
      text = "dogfood" 
      ) 
    ); 

我想能够阵列成基于关ID号的多个阵列的阵列分裂像这样:

$arrayOne = array(
     array(
      id = 3, 
      text = "Hello World" 
      ), 
     array(
      id = 3, 
      text = "Taco" 
      ) 
     ); 

    $arrayTwo = array(
     array(
      id = 10, 
      text = "Foo" 
      ), 
     array(
      id = 10, 
      text = "Bar" 
      ), 
     array(
      id = 10, 
      text = "dogfood" 
      ) 
    ); 

我可以找到的cloest PHP函数是array_chunk(),但它仅适用于数字索引。是否有任何类似的功能可以根据自定义书写功能进行组块分割决策?

我知道我可以编写一个自定义函数来遍历bigArray并手动执行此操作,但我首先要问的是,如果先有任何本机方法。

回答

1

使用id属性创建数组。

$group = array(); 
foreach($bigArray as $ar){ 
    $group[$ar['id']][]=$ar; 
} 
$chunks = array_values($group); 

现在,如果你运行extract($chunks,EXTR_PREFIX_ALL, 'Array_');你会得到数组变量像$Array_0$Array_1