連想配列のキーで配列値を検索してから、キー値の配列を作成しようとしています。in_array()funcを使用して検索していますが、foreachfuncを1つの配列に使用できます。
これは私のコードですが、問題は文字列を要求され、配列を指定したことです。
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]
コメントを追加