PDA

View Full Version : استفاده از دستور fwrite



Salazar.mi
چهارشنبه 11 دی 1398, 23:47 عصر
سلام
امیدوارم حالتون خوب باشه
من اینجا تو هر کدوم از متغیر های e1 تا e6
20 تا کلمه دارم که
میخواهم بیاد هر بار یه فایل بسازه به اسم های Best Attribute_Class1 تا Best Attribute_Class6 که تو هر کدوم اون 20 تا کلمه باشه
یعنی تو Best Attribute_Class2 اون 20 تا کلمه e2 باشه
اینو نوشتم
این میاد فقط کلمه آخر یعنی 20امین کلمه را نشان میده


for($i=1;$i<7;$i++)
{
foreach ((${"effective".$i}) as $key => $val){
${"e".$i}=($key . " " . $val.'<br>');

${"file".$i} = fopen("Best Attribute_Class$i.txt", "w") or die("Unable to open file!");


fwrite(${"file".$i},(${"e".$i}));
print_r(${"e".$i});
}
echo '<br>';
}


خروجی print_r اش درسته ها کامل نشان میده
فایهای جدید هم درست میسازه ولی فقط کلمه 20 امو نشان میده و البته یه <br> هم میذاره
من میخواهم هم <br> را نذاره و هم 20 تا کلمه را بنویسه
ممنون میشم کمکم کنین

ASHKANLAEI
پنج شنبه 12 دی 1398, 07:51 صبح
به جای این کدتون:

fwrite(${"file".$i},(${"e".$i}));
این کد رو پیشنهاد میکنم:

foreach (${"e".$i} as $v)
fwrite(${"file".$i},$v."\n");

Salazar.mi
پنج شنبه 12 دی 1398, 11:12 صبح
سلام بی نهایت ممنونم
ولی اینو نوشتم


for($i=1;$i<7;$i++)
{
foreach ((${"effective".$i}) as $key => $val)
{
${"e".$i}=($key.'<br>');

${"file".$i} = fopen("Best Attribute_Class$i.txt", "w") or die("Unable to open file!");


foreach (${"e".$i} as $v)
fwrite(${"file".$i},$val."\n");
//print_r(${"e".$i});
}
echo '<br>';
}

این ارور را داد


Warning: Invalid argument supplied for foreach() in C:\wamp64\www\nb2\main.php on line 202

ASHKANLAEI
پنج شنبه 12 دی 1398, 11:28 صبح
خط شش کدتون یک { کم داره

ASHKANLAEI
پنج شنبه 12 دی 1398, 11:29 صبح
این طوری بنویسید:

for($i=1;$i<7;$i++){
foreach ((${"effective".$i}) as $key => $val)
${"e".$i}=($key.'');
${"file".$i} = fopen("Best Attribute_Class$i.txt", "w") or die("Unable to open file!");
foreach (${"e".$i} as $v)
fwrite(${"file".$i},$v."\n");
echo '';
}

Salazar.mi
پنج شنبه 12 دی 1398, 11:41 صبح
شرمندم
این انقدر دیگه for و foreach داره من قاطی کردم اصلا نمیفهممش
بازم ارور داد


Warning: Invalid argument supplied for foreach() in C:\wamp64\www\nb2\main.php on line 198

ASHKANLAEI
پنج شنبه 12 دی 1398, 12:00 عصر
دوست عزیز شما ببینید خط 198 یعنی کدوم حلقه، ولی فکر کنم کد رو این شکلی بنویسید بهتره:

for($i=1;$i<7;$i++){
foreach ((${"effective".$i}) as $key => $val)
${"e".$i}=($key.'');
${"file".$i} = fopen("Best Attribute_Class$i.txt", "w") or die("Unable to open file!");
foreach ((${"e".$i}) as $k => $v)
fwrite(${"file".$i}, $v."\n");
}

Salazar.mi
پنج شنبه 12 دی 1398, 12:14 عصر
198 میشه foreach دومی
بازم ارور میده

ASHKANLAEI
پنج شنبه 12 دی 1398, 12:59 عصر
ببخشید حواسم نبود شما در foreach اولی اومدین کاری کردین که متغیرتون مقدار داشته باشه نه این که آرایه باشه.
از اون جایی که فکر میکنم میخواستین با حلقه اولی مقدار key های حلقه رو بریزید داخل متغیر های e، پس باید آخر متغیرتون [] بزارید.
for($i=1;$i<7;$i++){
foreach ((${"effective".$i}) as $key => $val)
(${"e".$i})[] = $key.' ';
${"file".$i} = fopen("Best Attribute_Class$i.txt", "w") or die("Unable to open file!");
foreach ((${"e".$i}) as $k => $v)
fwrite(${"file".$i}, $v."\n");
}

Salazar.mi
پنج شنبه 12 دی 1398, 15:31 عصر
راستش این بازم ارورو داد
من دیگه پشیمان شدم
سعی کردم راهمو عوض کنم
دستتون درد نکنه
ممنونم

ASHKANLAEI
پنج شنبه 12 دی 1398, 15:43 عصر
شما حتی اگر راهتون رو عوض کنید توی راه دیگه شاید زمانی دوباره به این مشکل برخورد کنید.
اگه تلاش کنید حتما از این مشکل کوچیک رد میشین ولی در اون صورت باید کل کد هاتون رو از نو بنویسید.

ASHKANLAEI
پنج شنبه 12 دی 1398, 15:45 عصر
از نظر من بهتره از آرایه استفاده کنید مثل این:

for($i=1;$i<7;$i++){
foreach ((${"effective".$i}) as $key => $val)
e[$i][] = $key.' ';
${"file".$i} = fopen("Best Attribute_Class$i.txt", "w") or die("Unable to open file!");
foreach ($e[$i] as $v)
fwrite(${"file".$i}, $v."\n");
}

Salazar.mi
پنج شنبه 12 دی 1398, 16:02 عصر
بی نهایت ممنونم از شما
ولی راستش این خیلی for و foreach داره همش قاطی میشه
بازم ارورو میده
میگه برای خواندن نمیتونی از [] استفاده کنی

plague
پنج شنبه 12 دی 1398, 19:42 عصر
اینو تست کن




for($i=1;$i<7;$i++)
{
${"e".$i} = '';
foreach ((${"effective".$i}) as $key => $val){
${"e".$i} . = "$key $val \n";
}
file_put_contents("Best Attribute_Class$i.txt",${"e".$i});
}