根据PHP中的值获取数组的子集

时间:2017-12-28 12:38:04

标签: php arrays

我有一个类似下面的数组

Array
(
    [0] => 1
    [1] => 1
    [2] => 1
    [3] => 2
    [4] => 2
    [5] => 3
    [6] => 3
    [7] => 3
    [8] => 4
    [9] => 4
    [10] => 4
) 

有没有办法使用这些值获取此数组的子集? 因此,如果需要值1的子集,则必须显示

Array
(
    [0] => 1
    [1] => 1
    [2] => 1
)

如果是2的子集则

Array
(
    [3] => 2
    [4] => 2
)

等等..我也需要保留索引。

我搜索了很多地方。但是没有得到答案。我希望避免多次循环。

2 个答案:

答案 0 :(得分:6)

您可以使用array_filter将数组过滤为仅查找您要查找的元素。将$subset设置为您要搜索的任何值,它将返回匹配的元素,而不更改键。

$subset = 2;

$results = array_filter($array, function ($item) use ($subset) {
    return $item === $subset;
});

print_r($results);
  

阵   (       [3] => 2       [4] => 2   )

请参阅https://eval.in/926983

答案 1 :(得分:0)

尝试array_chunk

array_chunk($array,4,true);

第一个参数数组

第二个参数大小

第三个参数保存键