Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将两个数组合并为一个php_Php_Codeigniter - Fatal编程技术网

如何将两个数组合并为一个php

如何将两个数组合并为一个php,php,codeigniter,Php,Codeigniter,我有两个数组,一个是codeigniter查询结果数组,另一个是在foreach内部创建的。我的密码是 $items = array(); $seats_available = 0; $available_seats = array(); $query = 'SELECT * FROM tbl_buses'; $result = $this->db->query($query); foreach ($result->result() as $results) { $

我有两个数组,一个是codeigniter查询结果数组,另一个是在foreach内部创建的。我的密码是

$items = array();
$seats_available = 0;
$available_seats = array();

$query = 'SELECT * FROM tbl_buses';
$result = $this->db->query($query);

foreach ($result->result() as $results) {
    $query1 = 'SELECT * FROM tbl_booking WHERE buses_id = '.$results->buses_id.' AND booking_date = "'.$results->buses_date.'" AND booking_status = 1';
    $result1 = $this->db->query($query1);
    $total = $result1->num_rows();
    $seats_available = $results->buses_tot_seat - $total;
    $available_seats[] = array('available_seats' => $seats_available);

    $items[] = $results;
}

return array_merge($items, $available_seats);
以上代码的结果是

[{“公交车id”:“1”,“公交车名称”:“Sugama旅游路线31号”,“公交车部门”:“20:20”,“公交车类型”:“非A座/卧铺(2+1)”,“公交车arr”:“05:56”,“公交车票价”:“760”,“从地点”:“Ernakulam”,“到地点”:“Mangalore”,“公交车日期”:“2019-04-25”,“公交车tot座位”:“30”;“公交车id”:“2”,“公交车名称”:“测试公交车”,“公交车部门”:“18:U”“测试类型”、“公交车到达时间”:“05:56”、“公交车票价”:“1000”、“从地点”:“Ernakulam”、“到地点”:“Mangalore”、“公交车到达日期”:“2019-04-26”、“公交车到达座位”:“100”、{“可用座位”:30}、{“可用座位”:100}

但我想知道结果

[{“公交车id”:“1”,“公交车名称”:“Sugama旅游路线31号”,“公交车部门”:“20:20”,“公交车类型”:“非A座/卧铺(2+1)”,“公交车arr”:“05:56”,“公交车票价”:“760”,“从地点”:“Ernakulam”,“到地点”:“Mangalore”,“公交车日期”:“2019-04-25”,“公交车tot座位”:“30”,“可用座位”:“公交车id”:“2”,“公交车名称”,“测试部门”::“18:20”,“公交车类型”:“测试类型”,“公交车到达”:“05:56”,“公交车票价”:“1000”,“从地点”:“Ernakulam”,“到地点”:“Mangalore”,“公交车日期”:“2019-04-26”,“公交车到座位”:“100”,“可用座位”:“100”


如何实现上述结果。请帮助。

我认为在您的情况下,加入查询会更有效

$query = "SELECT buses.*, booking.buses_tot_seat as available_seats FROM tbl_buses as buses LEFT JOIN tbl_booking as booking ON booking.buses_id = buses.buses_id AND booking.booking_status = 1";

$q = $this->db->query($query);

if ($q && $q->num_rows() > 0) {
    $res = $q->result();
    echo '<pre>';
    print_r($res);
} else {
    echo 'query failed or returned no rows!'; exit;
}
$query=“选择公交车。*,预订.buses\u tot\u seat as available\u seat FROM tbl\u buses as buses LEFT加入tbl\u booking as booking ON booking.buses\u id=buses.buses\u id和booking.booking\u status=1”;
$q=$this->db->query($query);
如果($q&&$q->num_rows()>0){
$res=$q->result();
回声';
印刷品(港币);;
}否则{
echo“查询失败或未返回任何行!”;退出;
}

请运行此代码并告诉我它是否返回正确的数组(我不太擅长sql查询)。sql
JOIN
绝对是比查询
SELECT
count($result)+1次更好的解决方案