我正在研究一个程序并提出一些烦人的问题。我正在尝试显示数组中的数据。我从我设置的另一个数组中复制了格式,它完美无缺。唯一的区别是我收集了更多的数据......
调用该函数:
$data1 = display_orders($_SESSION['user_id'], $limit, 'fName', 'lName', 'VendorName', 'DateRequested', 'Shipping', 'VendorNumber', 'VendorFax', 'VendorAddress', 'VendorCity', 'VendorState', 'VendorZip', 'EquipmentConsumable', 'GasType', 'GasLocation', 'UNMTag', 'EquipmentLocation', 'index', 'totalcost', 'Approved', 'Shipped');
功能本身
<?php
function display_orders($user_id, $limit)
{
$data = array();
$user_id = (int)$user_id;
$limit = (int)$limit;
$func_num_args = func_num_args();
$func_get_args = func_get_args();
// print_r($func_get_args);
if ($func_num_args > 1)
{
unset($func_get_args[0]);
unset($func_get_args[1]);
$fields = '`' . implode('`, `', $func_get_args) . '`';
for($x = 0; $x < $limit; $x++)
{
$data[] = mysql_fetch_assoc(mysql_query("SELECT $fields FROM `users` , `vendor` WHERE $user_id = users.id AND $user_id = vendor.user_id ORDER BY vendor.DateRequested DESC"));
}
return $data;
}
}
?>
所以现在我尝试回复数据:
echo $data1['VendorName'];
我没有输出。
如果我执行以下操作:
print_r ($data1);
我得到了输出!
数组([0] =&gt;数组([fName] =&gt; admin [lName] =&gt;测试[VendorName] =&gt; Newegg [DateRequested] =&gt; 2013-09-19 [送货] =&gt ;标准[VendorNumber] =&gt; NA [VendorFax] =&gt; NA [VendorAddress] =&gt; NA [VendorCity] =&gt; NA [VendorState] =&gt; NA [VendorZip] =&gt; 00000 [EquipmentConsumable] =&gt;设备[GasType] =&gt; [GasLocation] =&gt; [UNMTag] =&gt; 0 [EquipmentLocation] =&gt;计算机实验室[index] =&gt; 0 [totalcost] =&gt; 39.99 [已批准] =&gt; 0 [发货] =&gt; 0))
但如果我尝试添加字段名称No data ....
任何帮助,我将不胜感激!
答案 0 :(得分:5)
如您所见,$data1
为Array([0] => Array(...))
,因此您需要致电
echo $data1[0]['VendorName'];
这是因为您要将数据指定为$data[] = mysql_fetch_assoc(...)
。
答案 1 :(得分:3)
echo $data1[0]['VendorName'];
我建议在使用print_r时首先回显<PRE>
,因为它可以帮助您更轻松地查看数组的真实结构。在这种情况下,VendorName的位置比您回显的深一层。
答案 2 :(得分:0)
您忘记了索引[0]
:
echo $data1[0]['VendorName'];