在多维数组中找到匹配

时间:2011-08-26 21:03:10

标签: php multidimensional-array

我有以下数组:

  $data['standard'][36][2] = 52.5;
  $data['standard'][42][2] = 57.5;
  $data['standard'][48][2] = 62.5;
  $data['standard'][54][2] = 67.5;
  $data['standard'][60][2] = 72.5;
  $data['standard'][36][3] = 60.5;
  $data['standard'][42][3] = 65.5;
  $data['standard'][48][3] = 70.5;
  $data['standard'][54][3] = 75.5;
  $data['standard'][60][3] = 80.5;
  $data['standard'][72][3] = 90.5;

我正在尝试返回前两个匹配的第三个索引的键。例如'标准'和48需要一个数组(2,3)

但是对于'标准'和72我会返回数组(3)

另外,我想知道是否应该将这些数据存储在xml或类似的东西中?

2 个答案:

答案 0 :(得分:2)

试试这个:

$result = array_keys($data['standard'][48];

这只返回$data['standard'][48]数组的键:2和3。

答案 1 :(得分:0)

您可以使用以下内容:

function findInArray(&$data,$param1,$param2)
{
    return isset($data[$param1][$param2]) ? array_keys($data[$param1][$param2]) : array();
}

示例:

$keys = findInArray($data,"standard",48); // array(2,3);
$keys = findInArray($data,"standard",72); // array(3);

如果您更容易处理,可以使用数组来存储数据。