найти соответствие в многомерном массиве - PullRequest
0 голосов
/ 27 августа 2011

У меня есть следующий массив:

  $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 я бы возвратил array (3)

Также мне интересно, если я должен хранить эти данные в XML или что-то подобное?

Ответы [ 2 ]

2 голосов
/ 27 августа 2011

Попробуйте это:

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

Это просто возвращает ключи массива $data['standard'][48]: 2 и 3.

0 голосов
/ 27 августа 2011

Вы можете использовать что-то вроде этого:

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);

Можно использовать массив для хранения данных, если вам легче это обрабатывать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...