wordpress显示以智能方式取消数据序列化


wordpress show unserialize data in a smart way

在wordpress中,我将数据作为serialize方法存储在数据库中。现在我已经获取了数组中的数据。所以代码就像这个

global $wpdb;
 $results = wpdb->get_results("SELECT * FROM `table` where `id` = 3");
 foreach($results as $result) {
    echo '<pre>';
        print_r($result);
    echo '</pre>';
 }

这个正在给我获取类似的数据

Array
(
    [0] => stdClass Object
        (
            [id] => 1
            [title] => a:3:{i:1;s:8:"test1";i:2;s:8:"test2";i:0;s:0:"test3";}
            [page] => a:3:{i:1;s:3:"dsa";i:2;s:4:"dsds";i:0;s:0:"sdvdsvds";}
        )
)

现在我想计算这些值,并在列表中显示所有值。在这里你可以看到我有3个值的标题和页面。所以我把标题当成了筹码。所以我做了这个

foreach($results as $result) {
    $count = count(unserialize($result->title)); // This gave 3
    for( $i = 0; $i<$count; $i++ ) {
        echo '<li></li>'; // This gave me 3 li's that I wanted
    }
 }

现在,为了获得title和page的所有值,我再次需要foreach和unserialize方法。所以,有人能告诉我,在这里(李的)显示标题和单词数据的好方法和聪明方法是什么吗。任何建议和帮助都将非常可观。

您似乎已经完成了90%的工作,只需显示数据即可。

global $wpdb;
$results = wpdb->get_results( "SELECT * FROM `table` where `id` = 3" );
foreach( $results as $result ) {
    $titles = unserialize($result->title); 
    foreach( $titles as $title ) { // Loop through it
        echo '<li>'. $title ."</li>'n"; 
    }
}

我已经删除了您对count的调用,就好像它只用于计算循环多少次,那么您就不需要它了。您可以使用foreach循环来循环数组中的所有项。

我在每个</li>之后添加了一个换行符('n),这只是为了使生成的标记更可读。

我还在每个左括号后面和每个结束之前添加了空格,这与WordPress编码标准一致。