我正在尝试在关联数组的键中搜索数组值,然后对键值进行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] 删除。
我来说两句