Почему срабатывает 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"
}
и так далее.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть простая фреймворконезависимая библиотека на PHP для вывода статистикиК ней есть фронтенд, строящий диаграммы на JS+CSS, требующий еще и Сhart
Изучаю ПХП и работу на движке CodeIgniterПри открытии сайта на локальном сервере мы ловим сие ошибки
У меня есть класс FileSystem, и я хочу хочу сделать, чтобы с итераторов можно было выполнять некоторые методы самого классаДля этого в итератор...
Добрый деньЕсть следующий код на c++(среда - Visual Studio 2013):