这是我的代码。
$query = $this->db->query($sql);
$m &= is_object($emp) ? $emp->mobile_no : $emp['mobile_no'];
foreach ($query->result() as $row) {
$m [] = $row->mobile_no;
}
它警告说不能使用标量值作为数组。我的简单解决方案就是这个
$query = $this->db->query($sql);
foreach ($query->result() as $row) {
if (is_object($emp)) {
$emp->mobile_no[] = $row->mobile_no;
} else {
$emp['mobile_no'][] = $row->mobile_no;
}
}
但现在在每个循环中它都会做同样的事情。我能做什么? 这是我期待创造的。
contacts: {
address: "329/A",
corresponding_address: "Negambo",
mobile_no: [
"0719896992",
"0713345582"
],
telephone_no: [
"0915717472",
"0915715094"
]
}
////////////////////////////////更新
好的,我通过这种方式修复了
$query = $this->db->query($sql);
$tel = array();
foreach ($query->result() as $row) {
$tel[] = $row->telephone_no;
}
if (is_object($emp)) {
$emp->telephone_no = $tel;
} else {
$emp['telephone_no'] = $tel;
}
答案 0 :(得分:-1)
为什么不以正确的方式使用$m
$query = $this->db->query($sql);
$m = array();
$m[] = is_object($emp) ? $emp->mobile_no : $emp['mobile_no'];
foreach ($query->result() as $row) {
$m [] = $row->mobile_no;
}
当然我说这不知道$emp
是什么。我在此假设它至少相当于$row
,因为他们确定此属性$row->mobile_no
。