я вывешиваю этот вопрос в продолжение моего вопроса по этой ссылке: print values using for loop within foreach loopсравнить значения, извлекаемые из базы данных с существующими значениями массива
Я получил очень хорошее решение от одного человека и решения заключается в следующем:
foreach($officeDetails as $key=>$value){
$str = $value['days'];
$arr = explode(", ", $str);
/*Output of $arr is :
Array (
[0] => Monday
[1] => Tuesday
)
Array (
[0] => Wednesday
[1] => Thursday
[2] => Friday
)
*/
$daysArr = array("Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday");
foreach($daysArr as $i => $days){
echo $arr[$i]."<br/>";
if($daysArr[$i] == $arr[$i]){
echo "Selected ---- ".$days."<br/>";
}else{
echo $days."<br/>";
}
}
}
Теперь проблема, когда я использую этот
echo $arr[$i]."<br/>";
его печать все значения правильно с $ Аранжировка означает «Понедельник Вторник Среда Четверг Пятница», но когда я сравниваю два значения, используя, если условие:
if($daysArr[$i] == $arr[$i]){
он не проверяет второй массив, который является:
Array (
[0] => Wednesday
[1] => Thursday
[2] => Friday
)
и показывает результат
Monday
Tuesday
Это означает, что проблема возникает при условии, если условие не находится в петле foreach в $ daysArr. Пожалуйста, помогите мне, почему это происходит в цикле if. Я полностью потерян. Ваши предложения будут высоко оценены.
С уважением.
вы можете показать, что такое '$ значения [ 'дней'] 'есть. .. Я принимаю его строку, но важно, как она структурирована, поскольку у вас есть пробел в разделителе 'explode'. – Gavin
Да, конечно. $ value выглядит следующим образом: Понедельник, вторник – Aisha
Вторая запись состоит из среды, четверга, пятницы – Aisha