Forum Webscript.Ru
Программирование => PHP => Тема начата: xax от 14 Апреля 2004, 18:07:34
-
Есть построчный массив, где данные разбиты через ;
a;s;f;s
d;d;d
df;gh;ж;s
Как сделать так, чтобы если в 1 2 и 3 столбцах данного массива есть значения, то они скалдываются (Одно значение - цифра 1)
Тоесть
Например массив
f; ;e;t
f;r;t;r
e;f;g;
;d; ;eжа; ;e; ;e
1 строчка - 2
2 строчка - 3
3 строчка - 3
4 строчка - 1
-
то, что ты здесь накалякал - это НЕ МАССИВ
никаких "разбивателей" данных в массивах в пхп не было и нету.
Я фигею с этого человека, который так до сихпор и не узнал, что такое массив ,и называет этим словом какае-то каракули.
Еще и столбцы приплел.
Переведи это в массив - тогда и будем дальше разговаривать
-
RomikChef
Ок
Название скритпа e.php
$file="massive.txt";
$arr=file($file);
$str=explode(";",$arr[$n]);
//Считали файл massive.txt в массив - Тут я вроде всё всё верно накалякал
Содержимое файла massive.txt
f; ;e;t
f; ;t;r
e;f;g;
;d; ;eжа; ;e; ;e
Надо, чтобы если в адресной строке набрано http://адрес/e.php?n
=2
То выводилось 2 (Тоесть надо, чтобы в первых трёх столбиках были значения, если пробел, то он не считается)
-
что "ок"?
МАССИВ ГДЕ?
-
xax ну сделай как-нибудь хоть перебором. я понять не могу чего ты от народа хочешь? специальной функции для этого
xax:
Как сделать так, чтобы если в 1 2 и 3 столбцах данного массива есть значения, то они скалдываются (Одно значение - цифра 1)
бреда нет.
xax:
Надо, чтобы если в адресной строке набрано http://адрес/e.php?n
=2
То выводилось 2 (Тоесть надо, чтобы в первых трёх столбиках были значения, если пробел, то он не считается)
это ты думаешь более понятно первый вопрос написал?
тогда echo $_GET[\'n\']
-
AliMamed
это все бесполезно.
надо ему работать с колонками в этом файле.
то есть, по уму эесплодить каждую строку и добавлять в массивы, которые являются отображением колонок.
А потом с ними работать.
Но я не в состояни ему объяснить.
-
xax, неужели до сих пор не научился терзать файлы на "строчки/столбики"?
-
Mog.
Научился
$file="massive.txt";
$arr=file($file); //файл считали в массив построчно
$str=explode(";",$arr[$n]); //Строчка разбивается на массив
Мне нужно, чтобы если в строке $arr элементы $str[1] $str[2] $str[3] имеют значение (Что - нибудь написано), то мне выводилось что столько элементов (Из $str[1] $str[2] $str[3]) имеющих значение находятся в этой строке!
Так ясно?
-
xax
ну и кто тебе мешает в том же цикле считать каждый элемент?
-
RomikChef Никто - я за помощью и пришол, чтобы помогли, я не знаю, как это делать!
Поможешь?
-
[OFF]ох чую, ща тему прихлопнут[/OFF]
-
xax, скажи, что ты не можешь?
взять переменную и прибавить к ней значение нужного элемента?
Mog., я даже не знаю.
Наверное, тут нужен специальный педагог, или что.
с ТАКИМ уровнем я не салкивался.
я не знаю, что ему объяснять.
Но пускай пока живет.
Как я помню, тут уже нескоьлко человек было, которые с азартом кидались ему что-то объяснять, но все зубы пообломали :-)
может, еще какой герой найдется :-)
-
RomikChef Давай по - частям?
Как сделать так, чтобы скрипт понимал, что в $str[1] что - то написано?
-
$file="massive.txt";
$arr=file($file);
$num=1;
foreach($arr as $a)
{
$str=explode(";",$a);
$counter=0;
foreach($str as $x)
{
if($x!="")//это волшебная строка, угадай, что она делает
{
$counter++;
}
}
echo "в строчке номер $num содержится $counter элементов
";
$num++;
}
?>
-
Mog. Волшебная строчка, наверное говорит, что если пусто, то не выводим?
У тебя в коде foreach($str as $x); для всех элементов, а можно сделать foreach($str[1],$str[2],$str[3] as $x); ?
-
НЕЛЬЗЯ
почитай про foreach. чего ты хочешь добиться этой своей фантазией?
-
xax:
а можно сделать foreach($str[1],$str[2],$str[3] as $x);
А скажи зачем
-
Mog.
Есть патчи, в списке по названиям игр должно быть рядом с названием количество патчей к этой игре, а названия патчей к примеру пишутся в $str[1] $str[2] $str[3]
-
[OFF]RomikChef
как с этим бороться?[/OFF]
-
xax, я тебя все равно не понимаю.
Ты показал файл txt тебе сделали как надо, а файл не такой, выходит?
[OFF]... пойду уотоплюсь. (C) RomikChef
Шутка, пойду сына из садика забирать [/OFF]
-
Mog. В файле txt 27 столбцов, а нужно проверять только 1 18 21 16
-
Ну так и проверяй $str[1], $str[18], $str[21], $str[16]. Не обязательно же через foreach.
-
hanslinger
А как ещё?
-
Блин, ну хоть скажите какая функция или что - то типа этого?
-
никаких функций.
в том-то и дело, что все делается теми же средствами, что и весь остальной твой код.
-
RomikChef:
все делается теми же средствами, что и весь остальной твой код.
[OFF]Т.е. Ромик говорит, что Mog.\'ом :) и всеми остальными участниками обсуждения [/OFF]
Как вариант, из того, что есть (т.е. из всего массива от - до [n]) делаем то, что нужно (т.е. новый массив)
$file="massive.txt";
$arr=file($file);
$num=1;
foreach($arr as $a)
{
$str=explode(";",$a);
$counter=0;
$str_new=array("$str[1]","$str[18]","$str[21]","$str[16]");// создаем новый массив
foreach($str_new as $x)
{
if($x!="")//волшебная строка, угадай, что она делает
{
$counter++;
}
}
echo "в строчке номер $num содержится $counter элементов
";
$num++;
}
?>
-
Mog.
какую-то ты фигню наворотил
-
RomikChef В где?
-
Mog. Спасибо
RomikChef Всё работает
-
то, что оно работает - это фигня.
Вот то, что ты не понимаешь, КАК оно работает - это хуже.
мог, в общем, я зря придирался, действительно.
Какая разница - просто реализован алгоритм, или сложно.
Все равно этот чугунный не поймет ни того ни того
-
RomikChef Не - я понял, я только не понял почему неочень...
-
Интересно, чего там можно непонять?
-
Mog.
По-хорошему, на будущее, надо было сначала сдаелать обработку одного столбца.
Это было бы гораздо проще, и, может быть, дошло бы до него.
А когда вы все враз пихаете, как сами сделали бы, вы не думаете о бедном иванушке, который это все разбирать будет, который не знает то, что вы подразумевали, написав тот или иной кусок
-
задача-то не в том, чтобы у него этот тупой скрипт заработал.
а чтобы он научился сам составлять алгоритм, пользоваться кирпичиками if, foreach, составляясобствпенные программы.
а богадельню, когда он приходит, делает заказ, ему пишут готовое - я закрываю.