Надеюсь, я понял ваш вопрос, возможно, существует языковой барьер, но здесь мы идем:
так что в основном у вас есть 3 массива, и вы хотите использовать последний для проверки первого, чтобы увидеть, существуют ли эти значения / ключи в первом? Ну, первое, что вы хотите сделать, это реструктурировать ваш первый массив во что-то, что можно легко перевести для проверки значений и ключей следующих двух массивов. так что давайте вызовем первый массив $ mapArray:
foreach($mapArray as $mapObject){
foreach($mapObject as $object){
$mapList[$object->id] = $object->name;
}
}
Теперь это должно дать нам что-то вроде:
[211] => 'test'
[311] => 'tester'
Итак, теперь давайте вызовем второй массив $ arrayIds и третий $ arrayNames. Чтобы узнать, существует ли am id, и получить его имя, когда ему дан массив $ arrayIds, все, что вам нужно сделать, это:
//given [0] => 311
$keyExists = array_key_exists(311, $mapList); //returns true is the key exists
echo $mapList[311]; //returns tester, the name for the id given
И наоборот:
//given [0] => 'test'
$nameExists = in_array('test', $mapList);
if($nameExists) echo array_search('test', $mapList); // returns 211
надеюсь, что это то, что вы ищете, или, по крайней мере, поможет вам найти то, что вы ищете.