Как вызвать условие if, если только один массив пуст, если оба пустые, тогда вызвать условие else? - PullRequest
0 голосов
/ 16 ноября 2018

Я использую CodeIgniter. Я получаю ответ от модели и показываю на контроллере.

Модель

//some code here
return array('secondary_data'=> $result,'primary_data' =>$result2);// sending to controller
// some code here

Контроллер

$result=$this->Search_model->get_search_name($cust_name);//calling model    
$data['secondary_data'] = $result['secondary_data'];
$data['primary_data'] = $result['primary_data'];

print_r($data['secondary_data']);
print_r($data['primary_data']);

выход

Array
(
    [0] => stdClass Object
        (
            [member_id] => 
            [customer_id] => 
            [first_name] => qwer
            [last_name] => poiu
            [email] => 
            [member_type] => 2

        )

)
Array
(
    [0] => stdClass Object
        (
            [member_id] => 1
            [customer_id] => 0011
            [first_name] => asdasd 
            [last_name] => asdasda
            [email] => bappyang68@gmail.com
            [member_type] => 1

        )

)

но иногда я получаю пустой массив print_r($data['primary_data']) из-за отсутствия данных. Да, это возможно.;

но ниже, если условие Я проверяю количество данных count($data) > 0, и если оно найдено пустым, вызывается другая часть.

Я не хочу вызывать другую часть, если используется только один массив. если оба массива пустые, то он должен вызвать else part

    if (count($data) > 0)
     {
        $data['title'] = "Search";
        $data['heading'] = "Search";
        $data['content'] = $this->load->view('search',$data,true);
        $this->load->view('dashboard/dashboard',$data);
        }
       else{
       echo "NO data available";
      }

Есть идеи, как это сделать? Спасибо

Ответы [ 4 ]

0 голосов
/ 16 ноября 2018

начать проверку с $ data, а затем подмассива

if(count($data) && (isset($data['secondary_data']) && !empty($data['secondary_data'])) || (isset($data['primary_data']) && !empty($data['primary_data']))){
      ....
    }else{
      ...
    }
0 голосов
/ 16 ноября 2018

Попробуйте это условие с оператором ИЛИ

if(!empty($data['primary_data']) || !empty($data['secondary_data'])){
//One or both array have values
}else{
//Both have no values
}
0 голосов
/ 16 ноября 2018

Вы можете использовать отдельное условие для обоих массивов, если одно из них не пустое, тогда примените условие If в противном случае.

if ( !empty($data['secondary_data']) || !empty($data['primary_data']) ) {
    $data['title'] = "Search";
    $data['heading'] = "Search";
    $data['content'] = $this->load->view('search',$data,true);
    $this->load->view('dashboard/dashboard',$data);
} else {
   echo "NO data available";
}
0 голосов
/ 16 ноября 2018

Проверьте оба массива отдельно или в состоянии

if (count($data['primary_data']) > 0 || count($data['secondary_data']) > 0)
{
   $data['title'] = "Search";
   $data['heading'] = "Search";
   $data['content'] = $this->load->view('search',$data,true);
   $this->load->view('dashboard/dashboard',$data);
}else{
   echo "NO data available";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...