在第二级过滤多维数组

Filter multidimensional array on second level

有很多关于过滤的讨论帖,但我 google 一整天都无法正常工作。

我有一个数组,它是通过 mysqli 查询创建的。

$cat_cross =
    array(2)
      { [0]=> array(3)
          { ["cat_cross_id"]=> string(2) "24" 
            ["cat_cross_items_id"]=> string(1) "4" 
            ["cat_cross_user_id"]=> string(2) "58" 
          } 
        [1]=> array(3)
          { ["cat_cross_id"]=> string(2) "25" 
            ["cat_cross_items_id"]=> string(1) "6" 
            ["cat_cross_user_id"]=> string(2) "58" 
          }
      }

现在我只想查询 "cat_cross_items_id" 的值,因为稍后我需要用它在 if 子句中将它与另一个变量进行比较。

我试过这个:

$allowed = array("cat_cross_items_id");
var_dump(array_intersect_key($cat_cross, array_flip($allowed)));

我认为这适用于数组的第一级,但我如何过滤第二级?

期望结果:

$new_arr = array(4,6)

非常感谢!

PHP >= 5.5.0:

$new_arr = array_column($cat_cross, "cat_cross_items_id");

PHP >= 5.3.0:

$new_arr = array_map(function($v) { return $v["cat_cross_items_id"]; }, $cat_cross);

较早的版本将需要循环或在 array_map() 中调用外部函数。