我有以下一个或多个数组:
$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"
)
);我所能找到的能做到这一点的最封闭的PHP函数是array_chunk(),但它只能在数字索引上工作。有没有类似的函数可以根据自定义编写的函数做出块拆分决策?
我知道我可以编写一个自定义函数来遍历bigArray并手动完成所有这些操作,但我想先问一下是否有本机方法。
发布于 2012-02-04 06:55:56
使用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等数组变量。
https://stackoverflow.com/questions/9136572
复制相似问题