检查数组中是否存在值并从多维数组中获取数组

rjc*_*ode 1 php arrays

我在PHP数组下面:

Array ( 
       [0] => Array ( [policy_id] => 1 [category_id] => 5 [limit_amount] => 11.00 [limit_amount2] => 23.00 ), 
       [1] => Array ( [policy_id] => 1 [category_id] => 7 [limit_amount] => 32.00 [limit_amount2] => 23.00 ), 
       [2] => Array ( [policy_id] => 1 [category_id] => 4 [limit_amount] => 12.00 [limit_amount2] => 12.00 ) )
Run Code Online (Sandbox Code Playgroud)

现在我想做两件事:

  1. 想要检查是否category_id = 7存在于此数组中,以及是否存在.
  2. 那么我想从这个多维数组中得到完整的数组,

例如,如果category_id = 7是在数组中那么它应该输出

Array ([policy_id] => 1 ,
       [category_id] => 7 ,
       [limit_amount] => 32.00,
       [limit_amount2] => 23.00 )
Run Code Online (Sandbox Code Playgroud)

我试图使用in_array(),但无法获得所需的值,

感谢帮助,

tri*_*cot 5

你可以array_column在做之前使用array_search(我假设你的数据在$array):

$match = $array[array_search(7, array_column($array, "category_id"))];
Run Code Online (Sandbox Code Playgroud)

如果您需要首先检查条目是否确实存在,那么首先检查返回值array_search,并在找不到值时返回一些独特的内容,例如false:

$index = array_search(7, array_column($array, "category_id"));
$match = $index === false ? false : $array[$index];
Run Code Online (Sandbox Code Playgroud)