关联数组php中的Findind数组

雅培

我正在尝试在关联数组的键中搜索数组值,然后对键值进行make和array。我使用in_array()函数搜索,但是我可以将foreach函数用于一个数组。

这是我的代码,但问题是它要求我输入字符串,并给出了数组。

function getrarity(){
$json = '{"cards":[
        {
            "card_verify_id":"1",
            "name":"cardname1",
            "rarity":"1"
        },
        {
            "card_verify_id":"2",
            "name":"cardname2",
            "rarity":"2"
        }]
}';
$card = array(1, 2);
$cards = json_decode($json);
$commons = array();

foreach($cards->cards as $items) {
    if(in_array($card, $items->card_verify_id)){
        $commons[] = array("$items->card_verify_id", "$items->name", "$items->rarity");
    }
}
return $commons;
}
print_r(getrarity());
阿布拉·卡达弗

那是因为in_array没有将数组作为第一个参数。您可以简单地过滤并检查是否card_verify_id在中$card解码为数组:

$cards = json_decode($json, true)['cards'];
$commons = array_filter($cards,
                        function($v) use($card) {
                            return in_array($v['card_verify_id'], $card);
                        });

解码为对象:

$cards = json_decode($json)->cards;
$commons = array_filter($cards,
                        function($v) use($card) {
                            return in_array($v->card_verify_id, $card);
                        });

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章