【问题标题】:How to parse a multi dimensional array between php pages?如何解析php页面之间的多维数组?
【发布时间】:2014-04-23 11:04:57
【问题描述】:

我在array.php 中创建了一个array,并想在另一个文件index.php 中使用它,我该怎么做?

这是我的数组:

$fruits[]=array(
    "$int"=>array(
        'a' => $apple,
        'b' => $banana,
        'c' => $citrus
    )
);

【问题讨论】:

  • “传入 index.php”是什么意思?你是requireing index.php 在那个文件的末尾吗? -1,因为不清楚。
  • 什么是“走到尽头”
  • 你试过了吗?将其添加到会话并在 index.php 中访问它?
  • 我猜这只是知识上的一大差距。你想做什么——你的最终目标是什么?也许我们知道比passing this array from one php document to another更好的方法。
  • 要打印整个数组 .. 使用 print_r($fruits);,正如我在回答中向您展示的那样。

标签: php arrays function multidimensional-array output


【解决方案1】:

你有多种方法可以做到这一点......

  • 使用http_build_query(推荐方式)
  • 使用会话。
  • 使用序列化/反序列化
  • 使用 json_encoding / json_decoding。

还有很多其他方式...

使用第二种方式演示..

array.php

<?php
//.. your code..
$arr = array(1,2,3);
header("location:index.php?value=".serialize($arr));

index.php

<?php
if(isset($_GET['value']))
{
 $arr = unserialize($_GET['value']);
 print_r($arr);
}

【讨论】:

  • 它打印 - 数组 ( ) - 不是值
  • 你真的尝试过上面的代码吗?它将一起打印数组中的所有元素。如果你想单独使用它们,你需要使用echo
  • 您为什么要发明一种新方法来传递 get 参数而不是 using get arguments as designed?应该没有unserialize 步骤。
  • @AD7six,来吧,不可能列出所有的例子,OP可以从手册中阅读它吗? 这个例子的要点是一个数组不能像通过查询字符串一样发送,它需要用一个字符串表示。我看不出有什么问题。另外,既然你提到了http_build_query,我也提到了这一点,并在旁边放了一个推荐的方式
  • 谢谢!它现在有效,抱歉有一个不清楚的问题,但你的回答有帮助! :)
【解决方案2】:

会话对此最有效,它也不会在 URL 中添加变量。

基本上你所要做的就是打电话

session_start();

在您希望访问会话变量的每个 php 页面的顶部(在任何内容输出到浏览器之前)。然后,您可以使用

设置/检索变量
// set
$_SESSION['varname'] = "something";
// retrieve
$somevar = $_SESSION['varname'];

此方法也允许您在多个页面上使用该变量。

【讨论】:

  • 您没有看到我在多种方式下的回答的第二点已经建议了这一点吗?浪费我的时间写这么详细的答案真的很可惜。不管答案写得多么详细,人们就是不看。
  • 我阅读了您的答案并使用了它,序列化/反序列化之一。但是后来我需要在几个 php 页面中使用该数组,并决定对您建议的会话进行更多调查。所以我想我应该写一个会话使用的例子。你有帮助! :)
【解决方案3】:

include("array.php"); 位于您需要数组的index.php 位置,尽管您的问题并未明确说明您在这里真正想要实现的目标。

【讨论】:

  • 我怎样才能打印这个变量?我使用了 echo "array -" 。 $array[fruit]["b"];
  • 抱歉,$fruits[0]["b"]; ?
  • 这应该是正确的,但我不明白你为什么要问。试试看它是否有效;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-13
  • 2013-04-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多