我有问题…我正在尝试从mysql表创建一个数组。但我不知道如何将MySQL中的数据格式化为php中的数组。以下是我迄今为止所做的。。。
//Generate Org Data
$result_org = mysql_query("SELECT emp_no,sup_empno,Name,Title FROM employees");
// Initializes a container array
$orgArray = array();
while($row = mysql_fetch_array($result_org, MYSQL_ASSOC))
{
$currempno = $row['emp_no'];
$currsupervisor = $row['sup_empno'];
$currtitle = $row['Name']. ''n ' .$row['Title'];
//这是我不知道如何获得正确格式的地方
// Stores each database record to an array
$buildorg = array("$currempno","$currsupervisor","$currtitle");
// Adds each array into the container array
array_push($orgArray, $buildorg);
}
// show the data to verify
echo ($orgArray);
// the data needs to be exactly like this below
o.addNode(003002,'','Jane Doe''nAsst Manager')
其中003是$currenpno 002是$currssupervisor Jane Doe''nAsst经理是$currtitle
获取o.addNode(以及逗号、双引号和结尾);这让我很困惑
任何帮助都将不胜感激…
K Driscoll
如果我理解正确,您实际上正在尝试创建行
o.addNode(003, 002, '', 'Jane Doe'nAsst Manager');
因此,只需将值放入字符串中,并按您想要的方式格式化即可-无需创建另一个数组-您可以创建最终字符串并将其推入数组:
$currempno = $row['emp_no'];
$currsupervisor = $row['sup_empno'];
$currtitle = $row['Name']. ''n ' .$row['Title'];
$output = sprintf("o.addNode(%03d, %03d, '', '%s');", $currempno, $currsupervisor, $currtitle);
array_push($orgArray, $output);
我想这或多或少就是你想要的:
$finalArray = array();
$result_org = mysql_query("SELECT emp_no,sup_empno,Name,Title FROM employees");
while( $row = mysql_fetch_array($result_org, MYSQL_ASSOC) ) {
$finalArray[] = array(
$row['emp_no'],
$row['sup_empno'],
$row['Name'].''n'.$row['Title']
);
}
print_r($finalArray);
您使用了array_push
函数,最好使用另一种构造:$someArray[] = $newElement;
——它也必须这样做。以下示例。
此代码将起作用:
//Generate Org Data
$result_org = mysql_query("SELECT emp_no,sup_empno,Name,Title FROM employees");
// Initializes a container array
$orgArray = array();
while($row = mysql_fetch_array($result_org, MYSQL_ASSOC))
{
$currempno = $row['emp_no'];
$currsupervisor = $row['sup_empno'];
$currtitle = $row['Name']. ''n ' .$row['Title'];
$orgArray[] = array($currempno, $currsupervisor, $currtitle);
}
var_dump($orgArray);