1. ホーム
  2. php

[解決済み】In_arrayが動作しない。

2022-01-25 21:52:54

質問

配列があり、その配列の中の特定の数字を見つけるために in_array 関数を適用しましたが、結果は表示されず、データは配列の中にあるのに応答がありません:(

配列です。

 Array
(
[0] => SimpleXMLElement Object
    (
        [0] => 572140
    )

[1] => SimpleXMLElement Object
    (
        [0] => 533167
    )

[2] => SimpleXMLElement Object
    (
        [0] => 572070
    )

[3] => SimpleXMLElement Object
    (
        [0] => 572383
    )

[4] => SimpleXMLElement Object
    (
        [0] => 285078
    )

[5] => SimpleXMLElement Object
    (
        [0] => 430634
    )
}

私が使っているコード。

 if(in_array('285078',$arr))
    {
        echo 'yes';
    }
    else
    {
       echo "No";
    }

これは、xmlファイルから作成する配列です。

 $arr = array();
 foreach($xmlInjury as $data)
 {
  array_push($arr,$data->player_id);
 }

NO "としか表示されないのですが...。

どうすればいいですか?

まず、すべてをキャストしてから、検索してください。このように。

$new_arr = array_map(function($piece){
    return (string) $piece;
}, $arr);

// then use in array
if(in_array('285078', $new_arr)) {
    echo 'exists';
} else {
    echo 'does not exists';
}