Почему срабатывает 1 раз? Выводит 1, а потом всё время 2. Хотя in_array() содержит все поля, которые проверяет.
$objidd = mysql_query("SELECT `internal-id` FROM object1");
$objarr= mysql_fetch_array($objidd);
$usertr = mysql_query("SELECT idzk FROM allurlszhhk");
while($row = mysql_fetch_array($usertr)){
$xml = simplexml_load_file("xmlfiles/".$row['idzk'].".xml");
foreach ($xml->offer as $offer){
$id = 'internal-id';
$idint = $offer[$id];
var_dump( $idint, $objarr );
if ( in_array( $idint, $objarr ) ) {
echo 'Сработало первое выражение';
}
else{
echo 'Сработал false выражение';
}
}
}
Вывод скрипта:
object(SimpleXMLElement)#6 (1) {
[0]=> string(8) "f7989545"
}
array(2) {
[0]=> string(8) "f7989545"
["internal-id"]=> string(8) "f7989545"
}
Сработало первое выражение!
object(SimpleXMLElement)#5 (1) {
[0]=> string(8) "f7989546"
}
array(2) {
[0]=> string(8) "f7989545"
["internal-id"]=> string(8) "f7989545"
}
Сработал false выражение!
object(SimpleXMLElement)#4 (1) {
[0]=> string(8) "f7989547"
}
array(2) {
[0]=> string(8) "f7989545"
["internal-id"]=> string(8) "f7989545"
}
Сработал false выражение!
object(SimpleXMLElement)#7 (1) {
[0]=> string(8) "f7989548"
}
array(2) {
[0]=> string(8) "f7989545"
["internal-id"]=> string(8) "f7989545"
}
Сработал false выражение!
object(SimpleXMLElement)#48 (1) {
[0]=> string(8) "f7989549"
}
array(2) {
[0]=> string(8) "f7989545"
["internal-id"]=> string(8) "f7989545"
}
Сработал false и тд */
Суть вашей проблемы что вы вы выдёргиваете в
$objarr=mysql_fetch_array($objidd); одну строчку из object1 где колонки в виде массива, а не всю таблицу в массив как ожидаете.
Вы проверяете var_dump вместо самого in_array:
if(var_dump(in_array($idint, $objarr))){
Но var_dump сам по себе ничего не возвращает, поэтому if видит NULL и идёт к else.
Замените код и проверьте, что на самом деле получает in_array:
var_dump( $idint, $objarr );
if ( in_array( $idint, $objarr ) ) {
echo '1';
}
else{
echo '2';
}
UPD. Судя по добавленному вами дампу, вывод соответствует данным.
in_array находит [0]=> string(8) "f7989545" внутри массиваarray(2) {
[0]=> string(8) "f7989545"
["internal-id"]=> string(8) "f7989545"
}
а во всех последующих не находит, потому что искомых элементов в них действительно нет. Например, [0]=> string(8) "f7989546" нет в массиве
array(2) {
[0]=> string(8) "f7989545"
["internal-id"]=> string(8) "f7989545"
}
и так далее.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости