Php 返回具有匹配键值对的所有值

Php 返回具有匹配键值对的所有值,php,Php,鉴于此: $array1 = array( array( 'orderno' => 2, ), array( 'orderno' => 2, ),, array( 'orderno' => 1

鉴于此:

        $array1 = array(
            array(
                'orderno' => 2,
            ),
            array(
                'orderno' => 2,
            ),,
            array(
                'orderno' => 1                      
            ),
        );
我如何获得orderno=2的所有数组而不考虑orderno=1,我知道您可以通过foreach实现这一点,但我想知道是否可以使用本机php方法而不是foreach实现。。。 类似于:

array_search($cmsvalue['custnum'], array_column($custcsvarray, 'custnum'));

但是返回所有值而不仅仅是第一个值

如果
foreach
不够原生,可以使用。该函数接受应用于每个项的回调。结果是一个数组,返回回调未返回false的所有项

$array2 = array_filter($array1, function($item) {
  return $item['orderno'] == 2;
});

foreach
是原生PHP。这是一个非常好的观点。。。我想我的问题是如何不费吹灰之力地做这件事。。。。我将在foreach allready中运行它,我查询的数组是巨大的。我需要一个直截了当的方法这正是我想要的:D谢谢。。我因为某种原因被困在array_intersect中,但嘿,php从来都不是我的朋友。嘿嘿,有一个挖掘,foreach不够土生土长,不在那里!数组过滤器正是我希望在php中使用usign回调的东西,就像它是一种合适的语言:DPHP还使用函数名来排除字符串。这就是“可调用”的最初定义。后来,它还支持带有类的静态方法名的字符串和带有对象实例和方法名的数组。较新的版本支持实际的内联函数。最终他们会到达那里找到了我需要用“使用”