我有两个表,一个包含ID和FNAME(例如,01 Google),另一个ID,FIRSTNAME,SURNAME(来自01 JOHN DOE)。
最后一个数据库中的ID将用户与组织连接起来(f.ex这里有ID 01的Google)。
我正试图通过json_encode将这些变成JSON,但我不能因为爱我而弄清楚如何连接我得到的两个结果。
用户应该按组织排序。
例如:
{"Google":["John Doe","Paul"],"Microsoft":["Bill Gates"]}
我真的没有任何代码示例,因为我无法获得任何远程工作。我试图将它放入while循环中的数组中,但格式出错了 - 排序就这样了。
答案 0 :(得分:1)
这样你就可以开始了,
<?php
$outArr = array();
$arr1 = array(0 => array('ID' => '01', 'FIRSTNAME' => 'Google'));
$arr2 = array(0 => array('ID' => '01', 'FIRSTNAME' => 'JOHN', 'SURNAME' => 'DOE'),
1 => array('ID' => '01', 'FIRSTNAME' => 'NewJOHN', 'SURNAME' => 'NewDOE'));
foreach ($arr1 as $key => $compArr) {
$companyId = $compArr['ID'];
$outArr[$compArr['FIRSTNAME']] = '';
foreach ($arr2 as $arr2key => $employeeArr) {
if ($employeeArr['ID'] == $companyId) {
$outArr[$compArr['FIRSTNAME']][] .= $employeeArr['FIRSTNAME'];
}
}
}
echo json_encode($outArr);
exit;
?>
答案 1 :(得分:1)
这可能会对你有帮助,
$res = mysql_query('SELECT * FROM employee em LEFT JOIN organization org ON em.id = org.empid');
$op = array();
while($row = mysql_fetch_assoc($res))
{
print_r($row);
if(!isset($op[$row[org]])){
$op[$row[org]] = array();
}
array_push( $op[$row[org]], $row['fname']." ".$row['lname']);
}
echo json_encode($op);
以及基于我本地数据库中的条目的相应结果
Array
(
[id] => 1
[fname] => john
[lname] => doe
[sno] => 1
[empid] => 1
[org] => Google
)
Array
(
[id] => 2
[fname] => will
[lname] => smith
[sno] => 2
[empid] => 2
[org] => Microsoft
)
Array
(
[id] => 3
[fname] => abdul
[lname] => raseed
[sno] => 3
[empid] => 3
[org] => Google
)
{"Google":["john doe","abdul raseed"],"Microsoft":["will smith"]}
注意:DDL如下,
/*DDL Information*/
-------------------
CREATE TABLE `employee` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`fname` VARCHAR(256) DEFAULT NULL,
`lname` VARCHAR(256) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
CREATE TABLE `organization` (
`sno` INT(11) NOT NULL AUTO_INCREMENT,
`empid` VARCHAR(10) NOT NULL,
`org` VARCHAR(256) DEFAULT NULL,
PRIMARY KEY (`sno`)
) ENGINE=INNODB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1
节点:尝试使用最新的mysql函数,而不是弃用。