我有以下数组或数组:
$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并手动完成所有操作,但我想首先询问是否有任何本机方法。
答案 0 :(得分: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
等数组变量。