搜索 PHP 数组值 [重复]

Posted

技术标签:

【中文标题】搜索 PHP 数组值 [重复]【英文标题】:Search for PHP array value [duplicate] 【发布时间】:2019-05-08 02:58:39 【问题描述】:
"cuisines": [
            
                "id": 61,
                "name": "mexican"
            ,
            
                "id": 63,
                "name": "Indian"
            ,
            
                "id": 64,
                "name": "Thai"
            
        ],

我想在数组中搜索,就像我用“m”新数组搜索时一样。

"cuisines": [
                
                    "id": 61,
                    "name": "mexican"
                
            ],

我该怎么做?

有什么建议吗?

谢谢。

【问题讨论】:

按此角色过滤:如果名称中包含字符“m”? 到目前为止你尝试了什么? 您提供了 JSON 而不是数组。您确定要解析数组并执行正则表达式吗? 【参考方案1】:

array_filter 可以是一个解决方案。示例:

<?php
$data = '"cuisines": [
    
        "id": 61,
        "name": "mexican"
    ,
    
        "id": 63,
        "name": "Indian"
    ,
    
        "id": 64,
        "name": "Thai"
    
]';

$data = json_decode($data, true);
$search = 'm';
$data = array_filter($data['cuisines'], function ($item) use ($search) 
    return !!(false !== strpos($item['name'], $search));
);

print '<pre>';
print_r($data);

【讨论】:

【参考方案2】:

您可以使用array_filter 和stripos:

$search = 'm';

$array = [
    "cuisines" => [
            [
                "id" => 61,
                "name" => "mexican"
            ],
            [
                "id" => 63,
                "name" => "Indian"
            ],
            [
                "id" => 64,
                "name" => "Thai"
            ]
        ],
];

$array['cuisines'] = array_filter($array['cuisines'], function ($item) use ($search) 
    return stripos($item['name'], $search) !== false;
);

【讨论】:

如何打印返回值? 什么意思?您可以遍历$array['cuisines'] 并打印结果

以上是关于搜索 PHP 数组值 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

PHP按值搜索数组中的所有条目

PHP获取数组中重复值的键值

PHP多维数组搜索并获取键的数组[重复]

PHP:计算并显示多维数组的值[重复]

在 php 数组中搜索部分字符串匹配 [重复]

php数组的重复值如何过滤掉