Проверьте, выходит ли значение в массиве (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;
}

Но это не работает для меня, каков правильный путь?

Ответ 1

вместо 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, он будет искать ваше значение желания в вашем упомянутом /created array

Ответ 2

Вы можете использовать in_array для этого.

Try

$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";

}

Ответ 3

В вашем массиве нет ключа.
попробуйте это

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

вам нужно заменить только свое условие на замену этим кодом

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

Ответ 5

Для Laravel используйте Arr :: has

Arr::has($list_desings_ids, $design->design_id)