【问题标题】:PHP/MySQL search specific value in arrayPHP/MySQL 在数组中搜索特定值
【发布时间】:2015-05-27 12:25:33
【问题描述】:

在 WordPress 环境中,我正在创建代表公司页面的页面。 这些公司页面销售某些品牌。所以我在元框中创建了一个自定义表单,让用户可以动态添加字段以添加他们销售的品牌数量。这些值存储在我的数据库中的一个数组中。

我现在遇到的问题是我想创建某种过滤器。 我创建了一个页面,显示可能的品牌徽标的所有图像。这些徽标有一个链接,其中添加了一个自定义值(品牌名称)。 例如:

<a href="somepage.php?brand='brandname'"><img src="brandname.jpg"></a>

在接下来的页面上,我执行了一个 get 请求来检索添加到 url 的值。有了这个价值,我想向所有销售该品牌的公司展示。

最后一部分是问题。我不知道如何在带有添加到 URL 的值的数组中进行搜索。

所以我想我需要一条 SQL 语句到 SELECT * FROM $wpdb-&gt;postmeta WHERE 数据库 meta_key 字段 = 'brand'meta_value = GET['brand'] 来自 url 并在 array 中找到。

-- 更新--
所以我尝试了 DiegoCoderPlus 的解决方案,但没有给我想要的:

global $post;
$merk = $_GET['merk'];
$results = $wpdb->get_results("SELECT * FROM $wpdb->postmeta WHERE meta_key = 'brand'");
foreach ($results as $result){
    $post_id = $result->post_id;
    $brand = get_post_meta($post_id, 'brand', false); 
    $brandNeedle = $merk;                   
    if(in_array($brandNeedle, $brand))
        {
            echo 'true<br>';
        }else
        {
            echo 'false<br>'; 
        }
    }

这给了我两次false。 这是一半好,因为我的数据库中只有两家公司进行测试。如果我使用不同的品牌,它还会显示两个 false 结果。
$brand 数组看起来像这样。也许有帮助:

Array
(
    [0] => Array
        (
            [0] => 
        ) 

)

false

Array
(
    [0] => Array
        (
            [0] => brand 1
            [1] => brand 2
        )

)

【问题讨论】:

    标签: php mysql arrays wordpress search


    【解决方案1】:

    如果您的数组是 php 数组,那么您唯一需要的就是 in_array

    它的工作原理是这样的:

    $brands = array('brand1', 'brand2', 'brand3', 'brand4');
    $brandNeedle = 'brand2';
    
    if(in_array($brandNeedle, $brands))
    {
       // it is on the array
    }else
    {
       // it is not 
    }
    

    【讨论】:

    • 我不知道如何检查,但谢谢。这看起来简单而有用。我试试看
    • 您的品牌数组中似乎有一个数组,所以,您需要使 in_array 看起来像 if(in_array($brandNeedle, $brand[0])) ,所以它搜索内部数组,你明白吗?
    • 哇是的。谢谢你是完美的感觉,它的工作原理。干得好
    猜你喜欢
    • 1970-01-01
    • 2013-10-10
    • 1970-01-01
    • 2015-05-30
    • 2019-09-13
    • 2019-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多