У меня есть этот массив:
$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; }
Но это не работает для меня, каков правильный путь?
вместо array_key_exists
вы просто array_key_exists
, это решит вашу проблему, потому что если вы сбросите этот массив
$list_desings_ids = array('hc1wXBL7zCsdfMu','dhdsfHddfD','otheridshere');
выход будет,
array( 0 => hc1wXBL7zCsdfMu, 1 => dhdsfHddfD, 2 => otheridshere )
поэтому ваш код array_key_exists
не будет работать, потому что здесь в ключах 0,1,2
существует. Итак, вы хотите проверить значения, поэтому для значений просто сделайте это in_array
он будет искать ваше значение желания в указанном / созданном массиве
Вы можете использовать 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"; }
У вашего массива нет ключа.
попробуй это
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; }
вам нужно изменить только свое условие, заменив этот код
if(in_array($design->design_id, $list_desings_ids))