我在从下面的循环中获得所需的输出时遇到了一些问题。我想要的输出是如下所示的数组:
Array
(
[0] => Array
(
[0] => 10013
[1] => 8
[2] => 2
[3] => 6
[4] => Array
(
[0] => Array
(
[0] => Jerk Chicken
[1] => Drink
[2] => 8
[3] => 2
[4] => 6
)
)
)
[1] => Array
(
[0] => 10107
[1] => 28
[2] => 28
[3] => 0
[4] => Array
(
[0] => Array
(
[0] => Konig Pilsener
[1] => Tobacco
[2] => 3.5
[3] => 3.5
[4] => 0
)
)
)
[2] => Array
(
[0] => 10259
[1] => 18
[2] => 18
[3] => 0
[4] => Array
(
[0] => Array
(
[0] => Trailer Grog
[1] => Tobacco
[2] => 7
[3] => 7
[4] => 0
)
)
)
[3] => Array
(
[0] => 10375
[1] => 8
[2] => 2
[3] => 6
[4] => Array
(
[0] => Array
(
[0] => Steak Sandwhich
[1] => Drink
[2] => 8
[3] => 2
[4] => 6
)
)
)
)
唯一的问题是它应该向我显示更多的值,而不是我得到的那些。
我应该看到:http://awesomescreenshot.com/0321af5cc4
谢谢你的帮助。我向你保证,我已经尝试了下面这么多的变化,但仍然无济于事。
// all passing through correctly
global $actual;
global $potentialarray;
global $compsarray;
global $CheckName;
}
unset($temparray);
unset($temparray2);
$i=0;
foreach ($CheckName as $value) {
$v=0;
$query8 = "SELECT * FROM Comps_Item_Name WHERE DOB="."'". $from_date."'"." AND CheckID=" . $value ." ORDER BY CheckID AND ITMNAME";
$result8 = mysql_query($query8) or die(mysql_error());
//$var= mysql_num_rows($result8);
$row1[] = mysql_fetch_array($result8,MYSQL_ASSOC);
//print_r($row1);
//echo'<br>';
foreach ($row1 as $itemvalue){
//Item Name
$itemname = $itemvalue['ITMNAME'];
$catname = $itemvalue['CatName'];
$saleprice = $itemvalue['SalePrice'];
$discount1 = $itemvalue['Discount'];
//Actual retail value of check
$actual1= $itemvalue['SalePrice'] - $itemvalue['Discount'];
$temparray[$i][$v] = array($itemname, $catname, $saleprice, $discount1, $actual1);
$v++;
}
echo '<pre>';
print_r($temparray[$i]);
echo '</pre>';
$temparray2[$i] = array($CheckName[$i], $potentialarray[$i], $compsarray[$i], $actual[$i], $temparray[$i]);
$i++;
unset($row1);
}
// $DesiredOutput = array($CheckName, $potential[$i], $comps[$i], $actual[$i], array($itemname[$i][$v], $catnam[$i][$v], $saleprice[$i][$v], $discount1[$i][$v], $actual1[$i][$v]));
unset($itemname);
unset($catname);
unset($saleprice);
unset($discount1);
unset($actual1);
echo '<pre>';
print_r($temparray2);
echo '</pre>';
有什么想法?欢呼。
问题似乎是$row1[] = mysql_fetch_array($result8,MYSQL_ASSOC);
只给您第一行。试一试:
$row1 = array();
while($row = mysql_fetch_array($result8,MYSQL_ASSOC) ) {$row1[]=$row;}
参见:
<?
error_reporting(E_ALL);
ini_set('error_reporting','on');
$CheckName=array('test1','test2');
for($i=0; $i<count($CheckName); $i++)
{
/*$query8 = "SELECT * FROM Comps_Item_Name WHERE DOB="."'". $from_date."'"." AND CheckID=" . $value ." ORDER BY CheckID AND ITMNAME";
$result8 = mysql_query($query8) or die(mysql_error());
//$var= mysql_num_rows($result8);
$row1[] = mysql_fetch_array($result8,MYSQL_ASSOC);*/
$row1 = array();
$row1[] = array('ITMNAME'=>'cola','CatName'=>'drink');
$row1[] = array('ITMNAME'=>'beer','CatName'=>'drink');
$v=0;
foreach ($row1 as $itemvalue){
//Item Name
$itemname = $itemvalue['ITMNAME'];
$catname = $itemvalue['CatName'];
$temparray[$i][$v] = array($itemname, $catname);
$v++;
}
$temparray2[$i] = array($CheckName[$i], $temparray[$i]);
}
echo '<pre>';
print_r($temparray2);
echo '</pre>';