web-dev-qa-db-ja.com

配列に値が存在するかどうかを確認します(LaravelまたはPhp)

私はこの配列を持っています:

$list_desings_ids = array('hc1wXBL7zCsdfMu','dhdsfHddfD','otheridshere');

Die()+ var_dumo()では、この配列は私を返します:

array:2 [▼
  0 => "hc1wXBL7zCsdfMu"
  1 => "dhdsfHddfD"
  2 => "otheridshere"
]

Design_idが$ list_desings_ids配列に存在するかどうかを確認したいです。

例えば:

foreach($general_list_designs as $key_design=>$design) {
    #$desing->desing_id return me for example: hc1wXBL7zCsdfMu
    if(array_key_exists($design->design_id, $list_desings_ids))
    $final_designs[] = $design;
}

しかし、これは私にはうまくいきません、正しい方法は何ですか?

12
Funny Frontend

代わりにarray_key_existsと入力するだけでin_arrayこの配列をダンプすると問題が解決します

$list_desings_ids = array('hc1wXBL7zCsdfMu','dhdsfHddfD','otheridshere');

出力は、

array(
   0 => hc1wXBL7zCsdfMu,
   1 => dhdsfHddfD,
   2 => otheridshere
)

あなたのコードarray_key_existsはここではキー0,1,2が存在するので、値を確認したいので、値については、これを実行してくださいin_arrayそれはあなたの言及/作成された配列であなたの欲望値を検索します

14
Qazi

これにはin_arrayを使用できます。

試してみる

$design_id = 'hc1wXBL7zCsdfMu';
$list_desings_ids = array('hc1wXBL7zCsdfMu','dhdsfHddfD','otheridshere');

if(in_array($design_id, $list_desings_ids))
{
  echo "Yes, design_id: $design_id exits in array";

}
20
Hassaan

配列にキーがありません。
これを試して

foreach($general_list_designs as $key_design=>$design) {
       #$desing->desing_id return me for example: hc1wXBL7zCsdfMu
       if(in_array($design->design_id, $list_desings_ids))
       $final_designs[] = $design;
 }
4
paranoid

条件のみを変更する必要があり、そのコードに置き換えます

if(in_array($design->design_id, $list_desings_ids))
4