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