组合多个数组,但当一个数组为空时,php 中不显示任何内容
Combine multiple array but when one array is empty not show anything in php
我需要有关从数据库合并多个数组并使用
获取的帮助
fetchAll(PDO::FETCH_ASSOC)
首先,我查找百分比为 90% 的数据成员,并在数据库中搜索的每个数据减去查询中的一列 "SELECT",例如:
$query1 = "SELECT * FROM tb_member WHERE category = '1' AND gender = 'M' AND age = '30'";
$stmt1 = $this->db->prepare($query1);
$stmt1->execute();
$data1 = $stmt1->fetchAll(PDO::FETCH_ASSOC);
$query2 = "SELECT * FROM tb_member WHERE category = '1' AND age = '30'";
$stmt2 = $this->db->prepare($query2);
$stmt2->execute();
$data2 = $stmt2->fetchAll(PDO::FETCH_ASSOC);
$query3 = "SELECT * FROM tb_member WHERE category = '1' AND gender = 'M'";
$stmt3 = $this->db->prepare($query3);
$stmt3->execute();
$data3 = $stmt3->fetchAll(PDO::FETCH_ASSOC);
然后我将数组与这样的示例代码结合起来
$data = $data1 + $data2 + $data3;
我已经尝试过并成功了,但是当其中一个数组为空或未读时它会出错或不显示任何数据甚至通知错误
然后我试着 "if and else" 像这样
if(empty($data1)){
$data = $data2 + $data3;
}
elseif(empty($data2)){
$data = $data1 + $data3;
}
elseif(empty($data3)){
$data = $data1 + $data2;
}
else{
$data = $data1 + $data2 + $data3;
}
页面不显示任何内容或空白,是否有其他解决方案可以解决此问题?
更新
毕竟我使用 array_merge()
组合来自@Saral 的多个数组,当某些变量为空时我使用这样的代码示例
if(empty($array)){
$array = array();
}
然后就可以了,谢谢。
你这样组合数组
$data = array_merge($data1, $data2, $data3);
例如,
$array1 = [];
$array2 = ['a', 'b'];
$array3 = ['l', 'k', 'm'];
$array4 = [];
$array = array_merge($array1, $array2, $array3, $array4);
print_r($array);
Output:
Array ( [0] => a [1] => b [2] => l [3] => k [4] => m )
很奇怪 $array = $array1+$array2+$array3+$array4;
给了我 Array ( [0] => a [1] => b [2] => m )
这样组合数组的最佳方式:
$data=compact($data1,$data2,$data3);
或
$data=array_combine($data1,$data2,$data3);
我需要有关从数据库合并多个数组并使用
获取的帮助fetchAll(PDO::FETCH_ASSOC)
首先,我查找百分比为 90% 的数据成员,并在数据库中搜索的每个数据减去查询中的一列 "SELECT",例如:
$query1 = "SELECT * FROM tb_member WHERE category = '1' AND gender = 'M' AND age = '30'";
$stmt1 = $this->db->prepare($query1);
$stmt1->execute();
$data1 = $stmt1->fetchAll(PDO::FETCH_ASSOC);
$query2 = "SELECT * FROM tb_member WHERE category = '1' AND age = '30'";
$stmt2 = $this->db->prepare($query2);
$stmt2->execute();
$data2 = $stmt2->fetchAll(PDO::FETCH_ASSOC);
$query3 = "SELECT * FROM tb_member WHERE category = '1' AND gender = 'M'";
$stmt3 = $this->db->prepare($query3);
$stmt3->execute();
$data3 = $stmt3->fetchAll(PDO::FETCH_ASSOC);
然后我将数组与这样的示例代码结合起来
$data = $data1 + $data2 + $data3;
我已经尝试过并成功了,但是当其中一个数组为空或未读时它会出错或不显示任何数据甚至通知错误
然后我试着 "if and else" 像这样
if(empty($data1)){
$data = $data2 + $data3;
}
elseif(empty($data2)){
$data = $data1 + $data3;
}
elseif(empty($data3)){
$data = $data1 + $data2;
}
else{
$data = $data1 + $data2 + $data3;
}
页面不显示任何内容或空白,是否有其他解决方案可以解决此问题?
更新
毕竟我使用 array_merge()
组合来自@Saral 的多个数组,当某些变量为空时我使用这样的代码示例
if(empty($array)){
$array = array();
}
然后就可以了,谢谢。
你这样组合数组
$data = array_merge($data1, $data2, $data3);
例如,
$array1 = [];
$array2 = ['a', 'b'];
$array3 = ['l', 'k', 'm'];
$array4 = [];
$array = array_merge($array1, $array2, $array3, $array4);
print_r($array);
Output:
Array ( [0] => a [1] => b [2] => l [3] => k [4] => m )
很奇怪 $array = $array1+$array2+$array3+$array4;
给了我 Array ( [0] => a [1] => b [2] => m )
这样组合数组的最佳方式:
$data=compact($data1,$data2,$data3);
或
$data=array_combine($data1,$data2,$data3);