У меня есть массив, как показано ниже. Мне нужно сравнивать друг с другом и возвращать соответствующий массив по первому индексу, а затем другому.Сравните многомерный массив друг с другом и некоторое поле массива с внешней переменной
Как мы можем сравнивать весь массив друг с другом на основе id и scid с помощью $ scid?
$scid = 307;
$array = array(
0 =>
array(
'id' => '485',
'scid' => 306
),
1 =>
array(
'id' => '484',
'scid' => null
),
2 =>
array(
'id' => '486',
'scid' => 305
),
3 =>
array(
'id' => '485',
'scid' => 307
),
4 =>
array(
'id' => '485',
'scid' => 309
),
5 =>
array(
'id' => '485',
'scid' => 329
),
);
Массив результат должен быть как
array(3) {
[485]=> array(2) { ["id"]=> string(3) "485" ["scid"]=> int(307) }
[484]=> array(2) { ["id"]=> string(3) "484" ["scid"]=> NULL }
[486]=> array(2) { ["id"]=> string(3) "486" ["scid"]=> int(305) }
}
Если массив имеет дублированный идентификатор, на котором SCID не соответствия, то мы можем выбрать любое значение идентификатора. Примечание. Соответствующий вспомогательный массив всегда должен быть первым индексом результирующего массива. Сумма всегда будет уникальной и может содержать нуль, а также в массиве.
Хорошо, что вы сделали весь анализ. Теперь вам просто нужно что-то закодировать. – RiggsFolly
* duplicate id, на котором scid не подходит, мы можем выбрать любое значение id * - мы можем захватить первое значение, верно? например, '[485] => array (2) {[" id "] => string (3)" 485 "[" scid "] => int (306)' (первый amoung '485') – RomanPerekhrest
В приведенном выше сценарии 485 имеет соответствие 307, поэтому он должен возвращать [485] => array (2) {["id"] => string (3) "485" ["scid"] => int (307). Если у него нет такого соответствия, то он может выбрать любой из них с идентификатором 485. Также тот, у кого соответствующий scid, всегда должен быть в первом индексе. – Yogs