给大家分享一下在做页面显示天气预报功能中遇到的问题和解决方法!!

项目开发中,我用的天气预报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层问题记录的更多相关文章

  1. jQuery ajax 传递数组到struts2

    使用jQuery的$.ajax()方法进行异步交互时,如果传递的数据有数组(例如传输checkbox数据),Action中经常会接受不到数据. 此时应该注意一下data中数组的写法,例如: //组合成 ...

  2. jQuery Ajax传递数组到asp.net web api参数为空

    前端: var files = []; files.push({ FileName: "1.jgp", Extension: ".jgp", FileType: ...

  3. tensorflow学习框架(炼数成金网络版学习记录)

    chapter1 #变量 import tensorflow as tf x = tf.Variable([1,2]) a = tf.constant([3,3]) #增加一个减法op sub = t ...

  4. Controller将Model数据传给View层,View层应该如何处理?

    首先,我们在Model层中添加一个Person类. namespace MVCTest.Models{    public class Person    {        public string ...

  5. CI框架中自定义view文件夹位置

    要想自定义view文件夹的位置,首先要了解CI框架时如何加载view文件夹的. CI中默认调用view的方法是: $this->load->view(); //这一行代码的原理是什么呢?请 ...

  6. jQuery ajax 传递JSON数组到Spring Controller

    jQuery ajax传递单个JSON对象到后台很容易,这里记录的是传递多个JSON对象组成的JSON数组到java 后台,并说明java如何解析JSON数组. 1.js代码 var relation ...

  7. 转载《浅析MVC框架中View层的优雅设计及实例》

    在基于B/S的应用程序开发中,从基本的技术分工上来说就是两大块,一是软件显示界面,另一个是程序逻辑.在N年前的脚本语言时代,无论是asp.php还是jsp,我们基本是都是把这两者柔和在一起的.尽管我们 ...

  8. PHP CI框架数据传递渲染

    实例: //控制器 class Index extends CI_Controller { //因为类名是特殊字,所以为了运行正常添加构造函数 function __construct(){ pare ...

  9. SSH框架——(二)四层结构:DAO,Service,Controller,View层

    1. DAO层: 主要任务:做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此. DAO层的设计:首先是设计DAO层的接口,然后再Spring的配置文件中定义此接口的实现类,然后就可以在模块 ...

随机推荐

  1. 电脑太卡怎么解决-IT33

    首先我们看一下引起电脑卡顿的原因有哪些: 1.   电脑可能感染木马病毒. 2.   硬盘使用时间过长,硬盘有坏道. 3.   软件开太多导致内存不足. 4.   电脑磁盘中冗余或者碎片过多. 5.  ...

  2. ORACLE中修改表的Schema的总结

    前阵子遇到一个案例,需要将数据库中的几个表从USER A 移动到USER B下面,在ORACLE中,这个叫做更改表的所有者或者修改表的Schema.其实遇到这种案例,有好几种解决方法.下面我们通过实验 ...

  3. 用DDK开发的9054驱动 .

    和S5933比较起来,开发PLX9054比较不幸,可能是第一次开发PCI的缘故吧.因为,很多PCI的例子都是对S5933,就连微软出版的<Programming the Microsoft Wi ...

  4. 修改MyEclipse编辑框背景色

    修改MyEclipse编辑框背景色 1.未修改之前,编辑框背景色 2.依次操作,"Window--->Preferences" 3.选择"General---> ...

  5. 从DataTable中查询数据

    /// <summary> /// 从DataTable中查询数据 /// </summary> /// <param name="tb">待处 ...

  6. web开发性能优化---SEO优化篇

    一.清理垃圾代码 清理垃圾代码是指删除页面中的冗余代码,可以删除80%的冗余代码. 垃圾代码主要指那些删除了也不会对页面有任何影响的非必要代码. 最常见的垃圾代码,空格 空格字符是网页中最常见的垃圾代 ...

  7. 芝麻HTTP:爬虫的基本原理

    我们可以把互联网比作一张大网,而爬虫(即网络爬虫)便是在网上爬行的蜘蛛.把网的节点比作一个个网页,爬虫爬到这就相当于访问了该页面,获取了其信息.可以把节点间的连线比作网页与网页之间的链接关系,这样蜘蛛 ...

  8. CF#418 Div2 D. An overnight dance in discotheque

    一道树形dp裸体,自惭形秽没有想到 首先由于两两圆不能相交(可以相切)就决定了一个圆和外面一个圆的包含关系 又可以发现这样的树中,奇数深度的圆+S,偶数深度的圆-S 就可以用树形dp 我又写挫了= = ...

  9. freemarker写select组件(二十二)

    一,讲解一 1.宏定义 <#macro select id datas> <select id="${id}" name="${id}"> ...

  10. 初入前端框架bootstrap--Web前端

    Bootstraps是一种简洁.直观.强悍的前端开发框架,它让web开发更迅速.简单.对于初入Bootstrap的小白,高效进入主题很重要,能为我们节省很多时间,下面我将对使用Bootstrap开发前 ...