CI框架傳遞數組到view層問題記錄
給大家分享一下在做頁面顯示天氣預報功能中遇到的問題和解決方法!!
項目開發中,我用的天氣預報API是心知天氣的免費接口。關於天氣預報接口,可用的有很多,看需求怎麽要求了!有興趣的小夥伴可以鏈接到這個地址,裏面有該接口使用的詳細介紹:https://www.seniverse.com/。註意註冊登錄後才能使用喲!!
廢話不多說,下面就來說說我遇到的問題,首先是接口返回數據的問題。調用API返回的數據是json格式,我在使用json_decode()函數轉換數據格式後發現,竟然不是純數組格式,而是對象裏面有數組,數組中的元素又是對象!這可把我愁壞了。這樣的數據想要獲取裏面的元素值,實在是有點兒麻煩,因為數據有很多層!
那麽問題來了,怎麽把json格式的數據完全轉換為數組格式呢?
很簡單,只需要在json_decode()函數中使用第二個參數,並設置為TRUE就可以了。然後對返回的數組進行多次遍歷,得到自己想要的數據。
另一個問題是,CI中使用$this->load->view(‘視圖文件‘, $data)。下面使用代碼演示:
<?php
public function index(){
$data = [
‘whther‘ = ‘多雲‘,
‘high = 22,
‘low‘ = 10
]
$this->load->view(‘視圖文件‘, $data);
}
?>
那麽在view文件中怎麽顯示$data中的數據呢?這樣寫嗎?------> <?php echo $data[‘whther‘]?>
要明白該怎麽寫,首先得清楚PHP在解析變量的過程:視圖接收到$data數組後,使用PHP函 數extract()把數組中的每個元素轉換成內存變量,數組的鍵名即為變量名,值為變量內所包含的值!!因此數組中元素的值在視圖中是這樣被引用的:
<html>
<head>
</head>
<body>
<p class=‘whther‘><?php echo $whther; ?></p>
<p class=‘high‘><?php echo $high; ?></p>
<p class=‘low‘><?php echo $low; ?></p>
</body>
</html>
CI框架傳遞數組到view層問題記錄