在 WordPress 中,我已将数据作为序列化方法存储在数据库中。现在我已经获取了数组中的数据。所以代码是这样的
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
}
}
现在要获取标题和页面的所有值,我再次需要 foreach 和反序列化方法。那么有人可以告诉我什么是在此处(在 li 内部)显示标题和单词数据的好方法和智能方法吗?任何建议和帮助都将非常感激。
最佳答案
您似乎已经完成了 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
循环遍历数组中的所有项目。
我在每个 \n
之后添加了一个换行符 ( </li>
) ,这只是为了使生成的标记更具可读性。
我还在每个左括号之后和每个右括号之前添加了空格,这符合 WordPress 编码标准。
关于php - wordpress 以智能方式显示反序列化数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25766378/