|
|
|
| можно ли использовать if внутри foreach?
foreach($files as $value) {
list($var, $val) = split("=", $value);
$arr[$var] = $val;
if ($arr['login_online'] == 1)
$arr['login_online'] = "yes";
else
$arr['login_online'] = "no";
}
|
этот пример не работает, где напорол? | |
|
|
|
|
|
|
|
для: nep_sy
(24.08.2007 в 23:49)
| | Можно.
А какие ошибки выдает? | |
|
|
|
|
|
|
|
для: Poison
(24.08.2007 в 23:57)
| | первое значени подставляет правильно, а остальные начинает повторять
тут есть особенность $arr['login_online'] принимает только два значения 1 и пустое значение "" | |
|
|
|
|
|
|
|
для: nep_sy
(24.08.2007 в 23:49)
| |
// $array - это массив
foreach($array as $key=>$value) {
//тут можно делать что угодно, кроме изменения $array
if ($key =='login_online' and $value==1) echo 'yes';
else echo 'no';
}
|
| |
|
|
|
|
|
|
|
для: Yuriev
(25.08.2007 в 00:14)
| |
foreach($files as $value) {
list($var, $val) = split("=", $value);
if ($key == "login_online" && $value == 1)
echo "yes";
else
echo "no";
}
echo $arr['login_online'];
|
выдает то же самое(
no
no
no
no
.
.
.
.
no | |
|
|
|
|
|
|
|
для: nep_sy
(24.08.2007 в 23:49)
| | Кдючь 'login_online' у массива $files может быть только один и при первом проходе цикла если там единица то $arr присваивает "yes" и при последующих проходах в $arr['login_online'] лежит не единица, а значит каждый раз кладет "no" | |
|
|
|
|
|
|
|
для: Yuriev
(25.08.2007 в 00:23)
| | вот так оно выглядит:
foreach($arr_users as $user) {
$files = file("http://" . $c . ".combats.ru/inf.pl?login=" . $user . "&short=1");
if (!$files) {
$files = file("http://" . $b . ".combats.ru/inf.pl?login=" . $user . "&short=1");
} if (!$files) {
$files = file("http://" . $a . ".combats.ru/inf.pl?login=" . $user . "&short=1");
} if (!$files) {
$files = file("http://" . $g . ".combats.ru/inf.pl?login=" . $user . "&short=1");
} if (!$files) {
$files = file("http://" . $e . ".combats.ru/inf.pl?login=" . $user . "&short=1");
} if (!$files) {
$files = file("http://" . $f . ".combats.ru/inf.pl?login=" . $user . "&short=1");
} if (!$files) {
$files = file("http://" . $d . ".combats.ru/inf.pl?login=" . $user . "&short=1");
} if (!$files) {
$files = file("http://" . $h . ".combats.ru/inf.pl?login=" . $user . "&short=1");
}
foreach($files as $value) {
list($var, $val) = split("=", $value);
if ($arr['login_online'] == "")
echo "no";
;
}
echo $arr['login_online'];
#mysql_query("INSERT INTO `sostav` (name, level, rang, gorod, online) VALUES ('".$arr['login']."', '".$arr['level']."', '".$arr['rank']."', '".$arr['gamecity']."', '".$arr['login_online']."')");
}
|
для каждого user свой статус онлайн, то есть для него login_online=1, те кто в оффлайне login_online= (пустому значению) как только он нарывается на пустое значение, начинается глюк | |
|
|
|
|
|
|
|
для: nep_sy
(25.08.2007 в 01:02)
| | С самого начала.
Если смотреть цикл foreach($arr_users as $user) то при выходе из него $files будет иметь инфу из одного первого встреченного файла, а кто первый встретится-неизвестно.
Вы так и хотите?
К стати, сколько строк в файлах? | |
|
|
|
|
|
|
|
для: Yuriev
(25.08.2007 в 01:53)
| | >С самого начала.
>Если смотреть цикл foreach($arr_users as $user) то при выходе из него $files будет иметь инфу из одного первого встреченного файла, а кто первый встретится-неизвестно.
>Вы так и хотите? да
>К стати, сколько строк в файлах? в каждом по-разному до 40 строк доходит | |
|
|
|
|
|
|
|
для: nep_sy
(25.08.2007 в 01:58)
| | Если несколько юзеров будут онлайн, то при каждой работе всего скрипту в базу будет записана инфа про первого юзера, а до остальных так и не дойдет | |
|
|
|
|
|
|
|
для: Yuriev
(25.08.2007 в 02:19)
| | неужели нет никакого решения? ошибка возникает только в том случае, если $value принимает пустое значение, а если каждому из них присвоить ненулевое значение? | |
|
|
|
|
|
|
|
для: Yuriev
(25.08.2007 в 00:23)
| | >Кдючь 'login_online' у массива $files может быть только один и при первом проходе цикла если там единица то $arr присваивает "yes" и при последующих проходах в $arr['login_online'] лежит не единица, а значит каждый раз кладет "no"
а как сделать, что бы при следующем прохождении $arr['login_online'] возвращалось первоначальное значение? | |
|
|
|