PHP数组自定义格式

时间:2013-10-24 22:41:38

标签: php mysql wordpress

我刚开始使用PHP。 我正在努力从WordPress数据库中获取信息。

该插件从注册表单中将数据写入数据库。

我想要的是以自己的方式格式化这些数据,比如在一个单独的页面上说一个表格。

所以我已经做的是连接数据库,然后打印数据。是这样的:

<?php

    //connect to the database
    mysql_connect ("host","user","pasw") or die ('Cannot connect to MySQL: ' . mysql_error());
    mysql_select_db ("database") or die ('Cannot connect to the database: ' . mysql_error());

    //query
    $query = mysql_query("select id, data from wp_ninja_forms_subs") or die ('Query is invalid: ' . mysql_error());

    //write the results

    while ($row = mysql_fetch_array($query)) {
        echo $row['id'] . " " . $row['data'] . "
    ";

    // close the loop
    }

    ?>

问题是,我得到的结果并不适合我:

14 a:4:{i:0;a:2:{s:8:"field_id";i:2;s:10:"user_value";s:8:"John Doe";}i:1;a:2:{s:8:"field_id";i:4;s:10:"user_value";s:11:"+3706555213";}i:2;a:2:{s:8:"field_id";i:12;s:10:"user_value";s:9:"Company 1";}i:3;a:2:{s:8:"field_id";i:8;s:10:"user_value";a:1:{i:0;s:13:" Finansiniai ";}}} 15 a:4:{i:0;a:2:{s:8:"field_id";i:2;s:10:"user_value";s:10:"Bill Gates";}i:1;a:2:{s:8:"field_id";i:4;s:10:"user_value";s:11:"+5654412213";}i:2;a:2:{s:8:"field_id";i:12;s:10:"user_value";s:9:"Company 2";}i:3;a:2:{s:8:"field_id";i:8;s:10:"user_value";a:1:{i:0;s:13:" ?vaizd˛io ";}}} 16 a:4:{i:0;a:2:{s:8:"field_id";i:2;s:10:"user_value";s:7:"Person3";}i:1;a:2:{s:8:"field_id";i:4;s:10:"user_value";s:7:"6463213";}i:2;a:2:{s:8:"field_id";i:12;s:10:"user_value";s:9:"Company 3";}i:3;a:2:{s:8:"field_id";i:8;s:10:"user_value";a:2:{i:0;s:10:" HTML/CSS ";i:1;s:12:" Photoshop ";}}} 17 a:4:{i:0;a:2:{s:8:"field_id";i:2;s:10:"user_value";s:11:"Pretty Girl";}i:1;a:2:{s:8:"field_id";i:4;s:10:"user_value";s:9:"643122131";}i:2;a:2:{s:8:"field_id";i:12;s:10:"user_value";s:4:"Zara";}i:3;a:2:{s:8:"field_id";i:8;s:10:"user_value";a:1:{i:0;s:13:" ?vaizd˛io ";}}} 

现在,我想看到的是一张桌子:


2013.10.25    Pretty Girl 643122131   Zara         Įvaizdžio 
2013.10.25    Person3     6463213     Company 3    HTML/CSS ,  Photoshop 
2013.10.25    Bill Gates  +5654412213 Company 2    Įvaizdžio 
2013.10.25    John Doe    +3706555213 Company 1    Finansiniai

有人能告诉我,如何实现这一目标? 我相信,我的数据输出是一个数组,或者我也错了?

如果是的话,也许有人可以给我一个例子来说明如何格式化该数组的一部分,那么我可以做其余的事情吗?

甚至还有一些提示谷歌的用途?

谢谢!

1 个答案:

答案 0 :(得分:0)

"\n"用于换行符:)

您的个人值(a:4:{i:0....})已被“序列化”。这是一个由四个元素组成的数组,它们被传递给serialize() PHP函数。该函数返回了它的文本表示(即它已“序列化”了数组)。因此,您将整个数组保存在数据库中的一个单元格中作为简单文本。

函数unserialize()执行相反的操作 - 转换“序列化”(文本)值并返回原始PHP对象(在本例中为数组)。

您可以序列化几乎所有PHP对象,只要它没有附加任何“资源”。但是已经有一个单独的问题:What could cause a failure in PHP serialize function? 只要您序列化数字,字符串和数组以及简单对象的数组,就没有什么可担心的了。

未经证实的第一个细胞(第14个):

array (
  0 => 
  array (
    'field_id' => 2,
    'user_value' => 'John Doe',
  ),
  1 => 
  array (
    'field_id' => 4,
    'user_value' => '+3706555213',
  ),
  2 => 
  array (
    'field_id' => 12,
    'user_value' => 'Company 1',
  ),
  3 => 
  array (
    'field_id' => 8,
    'user_value' => 
    array (
      0 => ' Finansiniai ',
    ),
  ),
)

(使用:http://www.functions-online.com/unserialize.html)通过for循环或其他方式运行这些以获得所需的渲染,这取决于您。