2013-12-09 2 views
0

Привет Это может выглядеть, чтобы быть простой задачей, но я получаю поражен ... В моем приложении я получаю массив, который был бы какПолучить данные, которые в двухмерном массиве

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


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

) 

И мой стол выглядит как

home_id | home_name 

1  | My home 1 

2  | My home 2 

3  | My home 3 

Из этого массива я получит home_id, который находится в таблице базы данных. Так как я могу получить детали результата, который включает в home_name и расстояние от первого массива, который может быть как

home_name  | distance 
___________________________ 
My home 1  | 0.562620830044 

My home 3  | 14 

Спасибо заранее

+0

Что вы сделали до сих пор? –

+0

Что именно вы пытаетесь спросить? уточните ваш вопрос –

+0

'distance' - еще одна таблица? Вы пытаетесь получить 'home_name' на основе' home_id' в массиве? – Noor

ответ

2

Loop через массив и получить home_name из базы данных, используя codeigniter active record запрос -

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; 
    } 

} 
1

Если вы не может JOIN две таблицы в одном запросе и имеет использовать этот массив, то вы можете сделать:

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 
} 
+0

Спасибо за ваш ответ .. –

0
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 details из таблицы home_details_table с помощью id вы получите от основного массива, поэтому заменить поле home_name в home_details_table по home_id и связать обе таблицы как One to Many отношения.

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 

Затем с JOIN, вы будете в состоянии сделать:

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. 

} 
Смежные вопросы