如果找到匹配,则搜索父数组并打印子数组名称

时间:2014-12-03 21:19:06

标签: php arrays

我有一个名为$sourcearray的父数组,它有许多子数组。我试图正确和if else语句搜索所有父数组,看看这个id号是否与子数组中的任何值匹配。如果id号匹配,则打印子数组的名称。

这是我到目前为止的代码。如果有人可以提供帮助,我将不胜感激。

$id=$_GET['id'];

$sourcearray = array(

$AdvMag1 = array(
    '2422',
    '2423',
    '2441',
    '2495',
    '2466',
),

$AdvEmail = array(
    '2425',
    '701i0000001FfEL',
    '701i0000001Fl78',
),
);

if (in_array($id,$sourcearray)) {
   print childarray();
}
else{
     echo"Search-Other";
}

2 个答案:

答案 0 :(得分:0)

$sourcearray = array(
  "AdvMag1" => array(
      '2422',
      '2423',
      '2441',
      '2495',
      '2466'
  ),      
  "AdvEmail" => array(
      '2425',
      '701i0000001FfEL',
      '701i0000001Fl78'
  )
);

foreach($sourcearray as $name => $childarray) {
    if(in_array($id,$childarray)) {
        echo $name;
    } else {
        echo "Search-Other";
    }
}

答案 1 :(得分:0)

太棒了谢谢!!

我注意到我需要在每个语句的末尾添加一个返回值,以使其正常工作。 最终代码:

$id=$_GET['id'];

$sourcearray = array(
  "AdvMag1" => array(
      '2422',
      '2423',
      '2441',
      '2495',
      '2466'
  ),      
  "AdvEmail" => array(
      '2425',
      '701i0000001FfEL',
      '701i0000001Fl78'
  )
);

foreach($sourcearray as $name => $childarray) {
    if(in_array($id,$childarray)) {
        echo $name;
    } else {
        echo "Search-Other";
    }
    return;
}