将 wpdb sql 数组转换为 php 数组
Posted
技术标签:
【中文标题】将 wpdb sql 数组转换为 php 数组【英文标题】:Convert wpdb sql array into php array 【发布时间】:2014-03-27 08:59:43 【问题描述】:通过 sql 查询,我从我的 wpdb 中获取特定行的元值。在 sql 中它是一个数组,但它在 php 中作为字符串输出,如下所示:
a:1:i:0;a:2:i:0;s:10:”02/17/2014″;i:1;s:10:”Thom Stark”;
如何将其转换为 php 数组,以便访问数组 2 的索引中的值?我的查询如下所示:
$tabledata = $wpdb->get_row("SELECT meta_value FROM ".$prefix."frm_item_metas WHERE field_id='$fid' AND item_id='$eid'");
$data = $tabledata->meta_value;
echo $data;
outputs: a:1:i:0;a:2:i:0;s:10:”02/17/2014″;i:1;s:10:”Thom Stark”;
【问题讨论】:
【参考方案1】:您可以使用unserialize
$string = 'a:1:i:0;a:2:i:0;s:10:”02/17/2014″;i:1;s:10:”Thom Stark”;';
$array = unserialize($string);
【讨论】:
太棒了。现在正在尝试。谢谢。 我正在尝试这个:` $tabledata = $wpdb->get_row("SELECT meta_value FROM ".$prefix."frm_item_metas WHERE field_id='$fid' AND item_id='$eid'" ); $data = $tabledata->meta_value; $array = json_decode($data); $内容= $数据; foreach ($array as $a) $content .= $a.""; ` 但是数组没有被输出。 @Thom:你可以试试unserialize
吗?我已经更新了答案【参考方案2】:
它是一个序列化的数组,所以你需要使用反序列化将它转换回数组
$string = 'a:1:i:0;a:2:i:0;s:10:"02/17/2014";i:1;s:10:"Thom Stark";';
$array = unserialize(trim($string));
print_r($array);
注意:你有 ”
它应该是 "
【讨论】:
引号只是***的智能引用。 或者 WordPress,来自前端。否则它们是正确的。 不,可能是你复制的 word press 永远不会用”
存储,他们只是对数组进行序列化()。
我认为我必须接受 nauphal 的回答,因为他建议在您回答前一分钟取消序列化。 :( 抱歉!讨厌这些情况。
嘿,没关系!你不必为此感到抱歉!!最重要的是,无论您选择哪个答案,它都对您有用 :)以上是关于将 wpdb sql 数组转换为 php 数组的主要内容,如果未能解决你的问题,请参考以下文章
使用 wpdb prepare 安全地收集带有“join”的“where”子句数组
如何使用 php 数组将 sql 查询结果转换为数据透视表?