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

Aru*_*run 1 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
) 
Run Code Online (Sandbox Code Playgroud)

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

Array
(
    [0] => 1
    [1] => 1
    [2] => 1
)
Run Code Online (Sandbox Code Playgroud)

如果是2的子集那么

Array
(
    [3] => 2
    [4] => 2
)
Run Code Online (Sandbox Code Playgroud)

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

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

iai*_*inn 6

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

$subset = 2;

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

print_r($results);
Run Code Online (Sandbox Code Playgroud)

数组([3] => 2 [4] => 2)

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