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

项目开发中,我用的天气预报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. 为什么在Python里推荐使用多进程而不是多线程

    转载  http://bbs.51cto.com/thread-1349105-1.html 最近在看Python的多线程,经常我们会听到老手说:"Python下多线程是鸡肋,推荐使用多进程 ...

  2. 使用axios以及http-proxy-middleware代理处理跨域的问题

    axios现在以及是尤大大推荐使用的了,官方不在维护vue-reresource. 由于是地第一次使用axios, 在使用过程中猜了很大的坑 首先我们使用vue-cli创建的项目, 访问接口肯定是跨域 ...

  3. nimi SearchEngin 项目思路及算法

    最近做一个轻量文本搜索项目,在项目实行过程中,如果使用余弦求网页相似度,不能适应海量网页查重.看了那本<这就是搜索引擎  核心技术详解>后,对simhash算法有一定的理解,并且喜欢上了这 ...

  4. 3.3.3 PCI设备对可Cache的存储器空间进行DMA读写

    PCI设备向"可Cache的存储器空间"进行读操作的过程相对简单.对于x86处理器或者PowerPC处理器,如果访问的数据在Cache中命中,CPU会通知FSB总线,PCI设备所访 ...

  5. jQuery提示parsererror错误解决办法

    jquery来处理ajax,用到了json.但是很诧异,jquery的ajax回调时一直调用了error函数(一直提示parsererror异常),success函数一次没执行过 $.ajax({ t ...

  6. Java之List排序

    1.Java封装类 Student.java: /** * @Title:Student.java * @Package:com.you.data * @Description: * @Author: ...

  7. Caused by: java.lang.ClassNotFoundException: org.aspectj.lang.annotation.Around

    1.错误描述 INFO:2015-05-01 11:12:15[localhost-startStop-1] - Root WebApplicationContext: initialization ...

  8. org.apache.subversion.javahl.ClientException: Attempted to lock an already-locked dir

    1.错误描述 org.apache.subversion.javahl.ClientException: Attempted to lock an already-locked dir svn: Co ...

  9. java字符串替换的问题

    今天工作中遇到一个问题,需要输出mongodbObject中的部分内容,当我转换成字符串以后出现了好像无法替换的问题,经过验证,发现并非是不能替换,只是想法错误而已. package demo; /* ...

  10. No bean named 'cxf' is defined

    1.错误描述  严重:Exception starting filter CXFServlet        org.springframework.beans.factory.NoSuchBeanD ...