在多维数组中进行简单搜索

时间:2013-08-02 10:59:45

标签: php

我有一个包含以下值的数组

 - Array ( [id] => 3 [parent_id] => 2 [name] => Fitness ) 
 - Array ( [id] => 4 [parent_id] => 3 [name] => Why do it) 
 - Array ( [id] => 5 [parent_id] => 3 [name] => Nutrition) 

我想按照

的方式查询
array_search([parent_id]='3', $array)

并返回匹配元素列表。 (在这种情况下,它将是id的4& 5)。我不确定array_search()是否是正确的方法。可能尝试失败了。

2 个答案:

答案 0 :(得分:0)

您可以将array_filter与自定义回调

一起使用
$lookup_id = 3;
$results = array_filter($your_array, function($arr) use ($lookup_id) {

return $your_array['parent_id'] == $lookup_id;

});

此代码要求我相信> = PHP5.3,如果您有旧版本,则必须使用实际定义的函数(普通的php函数)或使用create_function来实现回调

答案 1 :(得分:0)

<?php
function mySearchArr($key, $value, $myBigArr) {
  $searchArr = array();
  foreach($myBigArr as $smallArr)
    if($smallArr[$key] == $value)
      $searchArr[] = $smallArr;
  return $searchArr
}

$matches = mySearchArr('parent_id', 3, $array);
?>