-1

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

 - 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()是正确的方法。可能的尝试目前正在失败。

4

2 回答 2

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

于 2013-08-02T11:05:29.837 回答
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);
?>
于 2013-08-02T11:05:56.107 回答