Jump to content


Photo

Very Confused -- Simple Program to Read Files and Compare


  • Please log in to reply
2 replies to this topic

#1 JohnOlivier

JohnOlivier
  • New Members
  • Pip
  • Newbie
  • 7 posts

Posted 10 October 2006 - 05:33 AM

Hello All,

Any help regarding the following matter would be much appreciated.

I am having a vexing problem.  I am new to PHP (about 3 or 4 days now), and I am having a problem doing what I would imagine would be very simple to accomplish in a language like C++.

I have three files:

1.  A list of needs
2.  A vendor and the cost for these needs
3.  Another vendor and the cost for these needs

So here is the idea.  I read all the needs into an array.  I then read all the vendor offerings and store them into two seperate arrays.  The key's of the array are what they are supplying and the values are the prices of the product.  Now I would like to index the vendor arrays with my needs, compare who is cheaper, and output the response to my user.

I used two sample files where the vendor 1 wins some and vendor 2 wins some.  However, the code that follows does not accurately tell which vendor to use.  It always allows vendor 1 to win.  I am super confused.

Please note that the following code is very "simple".  I am making the mother of all assumptions, that I have perfect input and a perfect user.  I do no error checking other than the files being there.

CODE SNIPPET:

<?php

$fp1  = 'needs';
$fp2  = 'vendor1';
$fp3  = 'vendor2';

$vItems1 = array();
$vItems2 = array();

if ($vendor1 = @file ($fp2))
{
foreach ($vendor1 as $v1)
{
$tempArray = explode("\t", $v1);
$item = $tempArray[0];
$price = substr($tempArray[1], 0, (strlen($tempArray[1])-1));
$vItems1[$item] = $price;
}
}
else
echo "Could not find your first vendor! <br>";


if ($vendor2 = @file ($fp3))
{
foreach ($vendor2 as $v2)
{
$tempArray = explode("\t", $v2);
$item = $tempArray[0];
$price = substr($tempArray[1], 0, (strlen($tempArray[1])-1));
$vItems2[$item] = $price;
}
}
else
echo "Could not find your second vendor! <br>";


if ($needs = @file ($fp1))
{
foreach($needs as $need)
{
if($vItems1[$$need] > $v2tems1[$$need])
echo "Buy " . $need . " from vendor two. <br>";
else
echo "Buy " . $need . " from vendor one. <br>";
}
}
else
echo "Could not find a list of your current inventory need! <br>";


/*$banned_array = $this->banned_array;
$ip = trim($_SERVER['REMOTE_ADDR']);
$cpu = gethostbyaddr($ip);*/

echo $ip;

php?>


#2 Daniel0

Daniel0
  • Staff Alumni
  • Advanced Member
  • 11,956 posts

Posted 10 October 2006 - 05:34 AM

Could we see a sample file of the ones you load?

#3 JohnOlivier

JohnOlivier
  • New Members
  • Pip
  • Newbie
  • 7 posts

Posted 10 October 2006 - 05:41 AM

Needs File Looks Like:
eggs
bread
milk

Vendor1
eggs  "tab"  1000
bread "tab"  1
milk  "tab"  1000

Vendor1
eggs  "tab"  1
bread "tab"  1000
milk  "tab"  1

I know these are ridiculous values.  Also the dumb little tab I inserted is an actual tab, and I have a return after the last item in each file.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users