posts wposts, $wpdb->postmeta wpostmeta WHER-6ren">
gpt4 book ai didi

PHP、MYSQL、EXPLODE 和 ARRAYS

转载 作者:行者123 更新时间:2023-11-29 07:11:42 24 4
gpt4 key购买 nike

$query_posts = "
SELECT DISTINCT meta_value
FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta
WHERE wposts.ID = wpostmeta.post_id
AND wpostmeta.meta_key = 'Product'
AND wposts.post_status = 'publish'
AND wposts.post_type = 'post'
ORDER BY wposts.post_date DESC";

$result = mysql_query($query_posts) or die(mysql_error());
while($row = mysql_fetch_array($result)){
echo $row['meta_value'];
}

上面的结果列表如下:

235/40/R18/95/ZR(Y)/XL £180.00
225/45/R17/94/W/XL £180.00
235/45/R17/97/Y/XL £180.00
245/45/R17/99/Y/XL £180.00
245/40/R17/91/Y £180.00
225/40/R18/92/W/XL £180.00
etc etc

如果您没有猜到的话,它们是轮胎尺寸。我需要将前三个值分解为不同的关系菜单:尝试宽度/侧壁/边缘

我发现如果我使用:

$query_posts = "
SELECT DISTINCT meta_value
FROM $wpdb->posts wposts, $wpdb->postmeta wpostmeta
WHERE wposts.ID = wpostmeta.post_id
AND wpostmeta.meta_key = 'Product'
AND wposts.post_status = 'publish'
AND wposts.post_type = 'post'
ORDER BY wposts.post_date DESC";
$result = mysql_query($query_posts) or die(mysql_error());
while($row = mysql_fetch_array($result)){
$tyres_widths = (explode("/",$row['meta_value']));
echo ($tyres_widths[0]);
}

我可以获得第一列($tyres_widths[0])、第二列($tyres_widths[1])或第三列($tyres_widths[2]),但这些值并不明显,当然我还没有得到它们在菜单中是相关的。

我的做法是否正确?必须有更好的方法吗?有人可以帮忙吗。我很乐意奖励正确答案,当然其他人也可以从中受益,这才是重点!!

提前致谢

斯图

最佳答案

您的做法是正确的。请注意,您可以使用 list 来“解压”数组:

list($width, $sidewall, $rim) = explode("/",$row['meta_value']);

名为 $sidewall 的变量比名为 $tire_widths[1] 的变量更清晰。

编辑

更简洁的是,您可以使用以下方法将字段放回关联数组中:

list($tires['width'], 
$tires['sidewall'],
$tires['rim']) = explode("/",$row['meta_value']);

编辑

根据评论中的请求,要为特定字段创建不同值的列表,您必须创建一个单独的数组并使用 array_unique:

$result = mysql_query($query_posts) or die(mysql_error());
$ar_widths = array(); // setup array of widths

while($row = mysql_fetch_array($result)){
list($width, $sidewall, $rim) = explode("/",$row['meta_value']);

$ar_widths[] = $width; // remember width
}

$ar_widths = array_unique($ar_widths); // remove duplicates
print_r($ar_widths);

关于PHP、MYSQL、EXPLODE 和 ARRAYS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4076078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com