Как я могу проверить частичное строковое значение в массиве - PullRequest
2 голосов
/ 06 мая 2019

Итак, у меня есть форма флажка, которая хранит значения в массиве, с несколькими значениями для каждого ключа.Как я могу проверить, проверено ли значение?in_array () не возвращает true для значений в массиве.

print_r ($ array) результаты:

Array ( [auto_loans] => auto_36_new,auto_48_new,auto_60_new,auto_72_new [mortgage_rates] => 30_year_fixed,15_year_fixed,7_1_arm_30_year,7_1_arm_15_year,5_1_arm_30_year,5_1_arm_15year,3_1_arm_30_year )

По сути, если какой-либо флажок установлен в true, я хочу вывести соответствующую ему скорость.

if (in_array("auto_36_new", $array))
  {
  // print the 36 month auto loan rate
  }
elseif (in_array("auto_48_new", $array))
  {
  // print the 48 month auto loan rate
  }
//etc... 

Я не могу получить какой-либо код для возврата положительного значения для любого идентификатора ставки кредита, даже если он находится в распечатке массива.Что я делаю неправильно?Я даже не уверен, является ли in_array наиболее эффективным способом справиться с этим, поэтому я не привязан к этому.в идеале я хочу ограничить запрос определенным количеством результатов из-за внешних ограничений, но сначала мне нужно получить результаты формы.Помогите пожалуйста!Спасибо

Ответы [ 2 ]

0 голосов
/ 07 мая 2019

Другой способ сделать это - использовать strpos для определенного элемента массива.Пример:

<?php

$arr = [
    'auto_loans' => 'auto_36_new,auto_48_new,auto_60_new,auto_72_new',
    'mortgage_rates' => '30_year_fixed,15_year_fixed,7_1_arm_30_year,7_1_arm_15_year,5_1_arm_30_year,5_1_arm_15year,3_1_arm_30_year',
];

if (strpos($arr['auto_loans'], 'auto_36_new') !== false) {
    // print the 36 month auto loan rate
} elseif (strpos($arr['auto_loans'], 'auto_48_new') !== false) {
    // print the 48 month auto loan rate
}
// etc...
0 голосов
/ 07 мая 2019

не уверен, как на самом деле ваш front-ent собирает значения формы, но похоже, что на back-end вы получаете проверенные значения, соединенные запятой ...

попробуйте это

$autoLoans = explode(',', $array['auto_loans']);
if (in_array('auto_36_new', $autoLoans)) {
  //...
}
...