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

项目开发中,我用的天气预报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. nignx笔记1

    上图是单版的架构,理论一个tomcat并发就200到300,经过优化后的最多500,这很明显容量低,而且出现单点故障后应用服务就不可以访问了,比如tomcat,这样明显对于多并发是不行的. 那么如果我 ...

  2. Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十四)Redis缓存正确的使用姿势

    作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载. 简介 这是一篇关于Redis使用的总结类型文章,会先简单的谈一下缓存 ...

  3. 【Unity3D】Unity3D开发《我的世界》之二、创建一个立方体

    转载请注明出处:http://www.cnblogs.com/shamoyuu/p/unity_minecraft_02.html 这一篇的内容比较简单,因为所有理论内容都在上一篇中讲到了.但有两点需 ...

  4. NLP+语义分析(四)︱中文语义分析研究现状(CIPS2016、角色标注、篇章分析)

    摘录自:CIPS2016 中文信息处理报告<第二章 语义分析研究进展. 现状及趋势>P14 CIPS2016> 中文信息处理报告下载链接:http://cips-upload.bj. ...

  5. Android内核解读-应用的安装过程

    前言 我们知道,在android手机上安装一个apk很简单,只要打开apk文件,默认就会弹出安装界面,然后点击确定,经过若干秒后,apk就安装成功了,可是你知道apk的安装过程是什么吗?你知道andr ...

  6. mysql一些使用技巧

    1.查看系统帮助文档:HELP contents; 2.查看所有支持的数据类型:HELP Data Types; 3.查看对应的数据类型的详细信息:HELP 类型:如HELP INT; 4.查看存储引 ...

  7. Java正则表达式语法

    Java正则表达式 表达式意义: 1.字符 x    字符 x.例如a表示字符a \\    反斜线字符.在书写时要写为\\\\.(注意:因为java在第一次解析时,把\\\\解析成正则表达式\\,在 ...

  8. Linux显示只显示目录文件

    Linux显示只显示目录文件 youhaidong@youhaidong-ThinkPad-Edge-E545:~$ ls -l -d */ drwxr-xr-x 2 root root 4096 1 ...

  9. 使用sourceTree向码云提交代码时 push 错误 (或认证失败)解决办法

     如果出现push不进去或者使用命令push认证失败时,很可能是你密码有误或者用户冲突,解决办法如下: 1.进入目录,找到文件后先备份一下 注意:appData可能隐藏了,若是隐藏,先让其显示  2. ...

  10. 第一篇:操纵MySQL数据库(1) - 基于MySQLdb库

    前言 本文讲解在Python语言中使用MySQLdb库操纵MySQL数据库的方法. 准备工作 1. 安装Python和MySQL2. 安装MySQLdb (exe下载地址:http://sourcef ...