【问题标题】:Var_dump outputvar_dump 输出
【发布时间】:2013-07-05 13:10:48
【问题描述】:

我已经从 stdclass 对象转换了这个数组。

我正在使用 var_dump 打印一个数组的输出,如下所示:

array (size=1)
  'fruits' => 
    array (size=2)
      0 => 
        object(stdClass)[2]
            public 'name' => string 'apple' (length=5)
            public 'origin' => string 'kashmir' (length=7)
            public 'number' => int 50
      1 => 
        object(stdClass)[1]
            public 'name' => string 'orange' (length=6)
            public 'origin' => string 'nevada' (length=6)
            public 'number' => int 20

我知道 var_dump 也给出了数据类型和长度。但是,我希望输出是这样的:

1.{
   'name':'apple',
   'origin':'kashmir',
   'number':50
   },
2.{
  'name':'orange',
  'origin':'nevada',
  'number':20
  }

谁能帮帮我?

【问题讨论】:

  • 您使用哪种编程语言? PHP?
  • 是的,我正在使用 php 和 Zend 框架

标签: php dump var


【解决方案1】:

试试 json_encode($array) 函数http://php.net/manual/en/function.json-encode.php

【讨论】:

  • 如果我使用 json_encode(),它会给出一个 json 字符串,例如 {"fruits":[{"name":"apple","origin":"kashmir","number": 50},{"name":"orange","origin":"nevada","number":20}]} 但是,我希望输出的格式如上。
【解决方案2】:
echo "<pre>"; print_r($myarray); echo "</pre>";

这给出了你所要求的东西。

【讨论】:

  • 谢谢,这确实使它更具可读性。我得到这样的输出: Array ( [fruits] => Array ( [0] => stdClass Object ( [name] => apple [origin] => kashmir [number] => 50 ) [1] => stdClass Object ( [name] => orange [origin] => nevada [number] => 20 ) 无论如何我可以删除“array”和“stdClass Object”这个词吗?
【解决方案3】:

如果您想要与示例相同的输出,您可能需要实现一个序列化程序。 您还可以使用以下功能: print_r, serialize

编辑

试试这个脚本:

foreach($array['fruits'] as $key=>$fruit) {
   echo ($key+1) . ".{\n";
   echo "\t'name':'$fruit->name',\n";
   echo "\t'number':'$fruit->number'\n";
   echo "},\n";
}

请注意,我没有测试过这个脚本。

【讨论】:

  • serialize() 像 json 字符串一样返回一个字符串
  • 非常感谢。只需稍加编辑即可。
猜你喜欢
  • 2023-03-06
  • 2014-04-02
  • 2011-04-15
  • 2011-07-08
  • 1970-01-01
  • 2014-01-16
  • 2013-09-11
  • 2011-01-07
  • 1970-01-01
相关资源
最近更新 更多