Я хочу, чтобы отсортировать второй массив ($ array2) на основе первого массива ($ поле [ «Choices»])Сортировка массива на основе другого массива
$field_name = "field_52f8fcdd21cb6";
$field = get_field_object($field_name);
foreach($field['choices'] as $k=>$v) {
echo $k."==".$v."<br>";
}
Приведенный выше код дает мне следующий вывод
Gyana Yagna==Gyana Yagna
Festival==Festival
Retreat==Retreat
Performance==Performance
Swaranjali==Swaranjali
Теперь второй массив начинается
echo "<br><br><br>";
$array2 = array("Gyana Yagna","Gyana Yagna","Gyana Yagna","Retreat","Festival","Festival");
foreach($array2 as $k=>$v)
{
if(in_array($v,$field['choices']))
{
echo $array2[$k]."<br>";
}
else
{
echo $array2[$k+1]."<br>";
}
}
Желаемая выход должен быть
Gyana Yagna
Gyana Yagna
Gyana Yagna
Festival
Festival
Retreat
В то время как я получаю следующие выходные данные
Gyana Yagna
Gyana Yagna
Gyana Yagna
Retreat
Festival
Festival
Любая помощь будет высоко ценится. Заранее спасибо.
Результат неправильный, потому что вы перебираете второй массив, поэтому $ array2 [3] возвращает $ v = "Retreat", который затем используется функцией in_array ($ v, $ field ['choice']). – Abbasi