2014-12-11 50 views
1

這個問題可能很愚蠢。但我在這裏被困住了。 :(我讓所有我的數據庫值,在控制器的對象Codeigniter提取對象std類並創建數組

這是怎麼了讀取數據庫值:。

$points = $this->CI->modelgraph->get($user_id); 

它讓所有對應於用戶的數據。這是從我在哪裏獲取數據我的樣本數據庫表:

id user_id b_value h_value date   r_value  
1 24  330  6.2  10.11.2014  90 
2 25  334  6.2  10.11.2014  92 

這是靜態數據,phpgraphlib教程提供

$data = array("1" => .0032, "2" => .0028, "3" => .0021, "4" => .0033, 
"5" => .0034, "6" => .0031, "7" => .0036, "8" => .0027, "9" => .0024, 
"10" => .0021, "11" => .0026, "12" => .0024, "13" => .0036, 
"14" => .0028, "15" => .0025); 

我需要用這種方式來提取提取的數據:

$data = array("h_value" => b_value,); 

怎樣才能實現這一目標?這將是什麼邏輯?任何幫助都會非常可觀。

這是我的做法..但也不完整..我做錯了什麼?

$total=count($points); 
$i=1; 
$dataArray=array(); 
while($i <= $total) { 
foreach($points as $value) { 
    //echo $value -> h_value; 
    $field = $value -> h_value; 
    $labels = $value -> b_value; 
    $dataArray[$i][$field ] = $labels;  
    $i++; 
    } 
} 

當我的var_dump($ dataArray中的);它給我這個輸出:

array(11) { [1]=> array(1) { ["6.6"]=> string(3) "358" } [2]=> array(1) { ["7.4"]=> string(3) "201" } [3]=> array(1) { ["6.5"]=> string(3) "144" } [4]=> array(1) { ["6.5"]=> string(3) "112" } [5]=> array(1) { ["6.2"]=> string(3) "144" } [6]=> array(1) { ["6.2"]=> string(3) "185" } [7]=> array(1) { ["7.0"]=> string(3) "176" } [8]=> array(1) { ["7.5"]=> string(3) "234" } [9]=> array(1) { ["6.5"]=> string(3) "365" } [10]=> array(1) { ["6.2"]=> string(3) "110" } [11]=> array(1) { ["4.2"]=> string(3) "100" } } 

但是當我var_dump($ data);它給這個:

array(15) { [1]=> float(0.0032) [2]=> float(0.0028) [3]=> float(0.0021) [4]=> float(0.0033) [5]=> float(0.0034) [6]=> float(0.0031) [7]=> float(0.0036) [8]=> float(0.0027) [9]=> float(0.0024) [10]=> float(0.0021) [11]=> float(0.0026) [12]=> float(0.0024) [13]=> float(0.0036) [14]=> float(0.0028) [15]=> float(0.0025) } 

它清晰可見我搞砸了。錯在哪裏?

這裏是輸出print_r($ points);它給這個:

Array ([0] => stdClass Object ([id] => 12 [user_id] => 24 [b_value] => 358 [h_value] => 6.6 [rec_date] => 2014-09-19 [rec_time] => [h_value] => 1[date_added] => 2012-09-19 16:38:05 [date_modified] => 0000-00-00 00:00:00) [1] .......... 
+0

print_r($ points)的輸出是什麼? – 2014-12-11 05:13:48

+0

從數據庫表中對應該用戶的全部數據..包括:userid,bvalue,hvalue,date,rvalue – oxvoxic 2014-12-11 05:15:37

+0

你能寫出print_r($ points)的輸出嗎? – 2014-12-11 05:17:57

回答

0

請參閱下面的代碼。

這是不言自明的。

相應地替換您的值。

<?php 
function modelFunction($user_id) { 
    $this->db->select('h_value, b_value'); 
    $this->db->from('YOUR_TABLE_NAME'); 
    $this->db->where('user_id', $user_id); 
    $query = $this->db->get(); 
    $arr = array(); 
    if ($query->num_rows()) { 
     $i=0; 
     foreach ($query->result_array() as $row) { 
      extract($row); 
      $arr[$i][$h_value] = $b_value; 
      ++$i; 
     } 
    } 
} 
?> 

Controller: 
<?php 
$points = $this->CI->modelFunction->get($user_id); 
?> 

答案編輯爲每個操作的要求:

<?php 
$dataArray = array(); 
for ($i=0 ; $i<= $total ; $i++) { 
    $value = $points[$i]; 
    $field = $value->h_value; 
    $labels = $value->b_value; 
    $dataArray[$i][$field ] = $labels;  
    $i++; 
} 
?> 
+0

很酷..但不幸的是我不能從這樣的數據庫中提取數據。我也有一些其他的依賴。我必須使用$點並提取。 – oxvoxic 2014-12-11 04:34:31

0
$new_array = array(); 
foreach($points as $point){ 
     $new_array[] = array(
     'id' => $point->id, 
     'user_id' => $point->user_id 
    ); 
} 
+0

這實際上是不附加數據以這種方式數組.. – oxvoxic 2014-12-11 05:51:51

+0

編輯答案請 – 2014-12-11 05:59:01

+0

真的appretiate你的迴應。但是,這是給輸出相同的var_dump($ dataArray中的!);在問題不喜歡的var_dump($數據); – oxvoxic 2014-12-11 06:05:25

0

可愛的小助手功能:

function object_to_array($data) 
{ 
    if (is_object($data)) { 
     $data = get_object_vars($data); 
    } 
    if (is_array($data)) { 
      return array_map(__FUNCTION__, $data); 
    } 
    else { 
      return $data; 
    } 
} 

用法示例:

$data['points'] = $this->CI->modelgraph->get($user_id); 

$data['points'] = object_to_array($data['points']);