0

私は次のコードを持っていますが、foreachが空の場合、elseステートメントに「NoOpen Homes」をロードする必要があると考えているため、配列がまだ空である理由がわかりません。

$openHomeTimes = array();

                    if(!empty($detail) && in_array('OpenHomes', $detail))
                    {
                        foreach ($detail['OpenHomes'] as $openHome) 
                        {   
                            $startO        = $openHome['Start'];
                            $finishO       = $openHome['End'];
                            $startConvert  = preg_replace('~\D~', '', $startO);
                            $start         = date('D j M g a',$startConvert / 1000);
                            $finishConvert = preg_replace('~\D~', '', $finishO);
                            $finish        = date('g:ia',$finishConvert / 1000);

                            $openHomeDetail = $start." - ". $finish;

                            $openHomeTimes[] = $openHomeDetail;


                        }
                    }else{
                        if(!empty($openHomeTimes))
                        {
                            $message = 'No Open Homes';

                            $openHomeTimes = $message;


                        }
                    }
4

1 に答える 1

0

私があなたを完全に誤解していなければ、単純な論理修正で十分かもしれません。そのforeachは、外部のif/else構造の条件ではありません。

                $openHomeTimes = array();

                if(!empty($detail) && in_array('OpenHomes', $detail))
                {
                    foreach ($detail['OpenHomes'] as $openHome) 
                    {   
                        $startO        = $openHome['Start'];
                        $finishO       = $openHome['End'];
                        $startConvert  = preg_replace('~\D~', '', $startO);
                        $start         = date('D j M g a',$startConvert / 1000);
                        $finishConvert = preg_replace('~\D~', '', $finishO);
                        $finish        = date('g:ia',$finishConvert / 1000);

                        $openHomeDetail = $start." - ". $finish;

                        $openHomeTimes[] = $openHomeDetail;


                    }
                }

                //Always check for emptiness
                if(empty($openHomeTimes))
                {
                    $message = 'No Open Homes';

                    $openHomeTimes = $message;
                }
于 2012-12-27T23:27:20.630 に答える