简体   繁体   中英

Get the data which in two dimensional array

Hello This may looks to be simple task but I am getting struck... In my application i am getting an array which would be like

Array
(
[0] => Array
    (
        [home_id] => 1
        [distance] => 12
    )
[1] => Array
    (
        [home_id] => 3
        [distance] => 14
    )


[2] => Array
    (
        [home_id] => 94
        [distance] => 1.679713069
    )
    .
    .
    .
    .

)

And my table looks like

home_id  | home_name

1        |   My home 1

2        |   My home 2

3        |   My home 3

From this array i will get the home_id which is in database table. So How can i get the result details which includes the home_name and the distance from the first array which might be like

home_name        |  distance
 ___________________________
My home 1        |   0.562620830044

My home 3        |   14

Thank you in advance

Loop through your array and get the home_name from database using codeigniter active record query -

foreach($yourArray as $row)
{
   $id = $row['home_id'];
   $distance = $row['distance'];
   $db_result = $this->db->get_where('yourtable', array('home_id' => $id));
   if($db_result && $db_result->num_rows() > 0){
    $result = $db_result->row();
    $home_name = $result->home_name;
   }

}

If you cannot JOIN the two tables in one query and have to use that array then you can do:

foreach($yourArray as $home)
{
   $id=$home["home_id"];
   $distance=$home["distance"];
   $id=intval($id);
   $sql="SELECT home_name FROM yourTable WHERE home_id=$id";   // execute this query to get name
}
From this array i will get the home_id which is in database table. So How can i get the result details which includes the home_name and the distance from the first array which might be like

If you want to get home details from table home_details_table using the id you get from the main array, so replace the field home_name in home_details_table by home_id and link both tables as a One to Many relation.

home_table:

home_id  | home_name
1        |   My home 1

2        |   My home 2

3        |   My home 3

home_detail_table:

home_id  |  distance
1        |   0.562620830044

3        |   14

Then with a JOIN , you will be able to do :

foreach($mainArray as $home)
{
   $id = $home["home_id"];
   $sql="SELECT h.home_id, h.home_name, d.home_distance FROM home_table h JOIN home_details_table d ON h.home_id = d.home_id WHERE h.home_id = ".$id;
   // with this query you will have the name and distance of the given home id.

}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM