Как использовать PHP для поиска одного значения с помощью двух ключей? - PullRequest
0 голосов
/ 03 апреля 2019

Когда у меня есть один ключ, и мне нужно значение. Я могу сделать этот поиск с помощью одного ключа с помощью PHP array.

$data = array(1 => "one");
return $data[1];

У меня есть набор данных, где для определения одного значения требуются два ключа.
Какие есть средства для поиска значения двумя ключами?

return get_value[$key1, $key2]; //?

Пример данных:

Есть несколько средств тестирования, которые имеют индивидуальную нумерацию (1, 2, 3, 4, etc). Каждый объект имеет набор продуктов, которые он тестирует (A, B, C, D). Каждое средство имеет особенность в том, как оно устанавливает имена полей в базе данных для каждого продукта. Средство 1, тестирующее продукт A, использует поля {x, y, z}, чтобы получить набор точек графика. Средство 2, тестирующее продукт A, использует поля {m, n, q}, чтобы получить набор или график точек. Интерфейс для получения точек графа такой же, но поля разные. Мне нужна абстракция для нормализации полей, независимо от того, какой объект тестирования и какой продукт они тестируют.

Я подумываю сделать это, настроив абстракцию, которая просматривает обязательные поля, используя два ключа: номер объекта тестирования и тестируемый продукт.

[1, A] => {x, y, z}
[1, B] => {m, n, q}
[2, C] => {g, r, b}
etc

Ответы [ 3 ]

2 голосов
/ 03 апреля 2019

Вы должны хранить данные следующим образом:

$data = [
  1 => [
    'A' => {set of fields X},
    'B' => {set of fields Y},
  ],
  2 => [
    'C' => {set of fields Z}
  }
]

Вы можете получить доступ к набору полей X следующим образом: $data[1]['A'].

0 голосов
/ 03 апреля 2019

Я также могу рассмотреть это:

$set1 = array('x', 'y', 'z');
$set2 = array('m', 'n', 'q');
standard_set = array('a', 'b', 'c');

if ($key1 === 1 && $key2 === 'A')
    return $set1;
else if ($key1 === 1 && $key2 === 'B')
    return $set2;
else
    return $standard_set;
0 голосов
/ 03 апреля 2019

Ключ может иметь только одно значение, вы можете сохранить составное значение, подобное этому

$data = array($key1."---".$key2=>$firstValue); 

и сохранить значения в массиве.Чтобы получить значения, вы можете получить такие значения, как

echo $data[$key1."---".$key2]; 

Концепция похожа на составной ключ (как у нас в базах данных), но вы просто объединяете их в 1 значение, чтобы вы могли использовать егов качестве ключа

В вашем случае:

$data = array('1'.'-'.'A'=>Whatever);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...