我有以下一个或多个数组:
$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并手动完成这一切,但我想先问一下是否有本地方法。
使用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
等。