Если вы используете XPath для поиска данных вместо того, чтобы иметь все различные циклы, вы можете сократить код до чтения в проигрывателях и последующего поиска записи.
При этом используется выражение XPath //set[@id="'.$lookArr[1].'"]/part[@id="'.$lookArr[2].'"]
, который будет выглядеть как //set[@id="3774"]/part[@id="3329"]
. Это значение <set>
со значением атрибута для id = 3774, которое имеет <part>
с атрибутом id 3329.
xpath()
возвращает список, поэтому, если оно пустое, значение isn ' t найдено.
$users = $users->fetchAll(PDO::FETCH_OBJ);
foreach($users as $user ) {
$lookArr = explode(".",$user->figure);
foreach($lookArr as $look ){
$lookArr = explode("-",$figure);
$set = $figuredata->xpath('//set[@id="'.$lookArr[1].'"]/part[@id="'.$lookArr[2].'"]');
if ( empty($set) ) {
echo "fail";
}
else {
echo $set[0]->asXML();
}
}
}