Php 使用foreach检索以符号作为对象的数组值
我想检索数据库中的字段名,其中一个名为Php 使用foreach检索以符号作为对象的数组值,php,foreach,Php,Foreach,我想检索数据库中的字段名,其中一个名为'wardno/houseno'。当我尝试使用foreach将其作为对象检索时,我发现 我的代码 $this->db->select('*'); $this->db->from('tbl_application'); $this->db->where('app_no', '1/ML/201314/TVM'); $q=$this->db->get(); foreach($q->result() as $ro
'wardno/houseno'
。当我尝试使用foreach
将其作为对象检索时,我发现
我的代码
$this->db->select('*');
$this->db->from('tbl_application');
$this->db->where('app_no', '1/ML/201314/TVM');
$q=$this->db->get();
foreach($q->result() as $row)
echo $row->wardno/houseno;
错误显示
A PHP Error was encountered
Severity: Notice
Message: Undefined property: stdClass::$wardno
Filename: controllers/admin_sona.php
Line Number: 19
A PHP Error was encountered
Severity: Notice
Message: Use of undefined constant houseno - assumed 'houseno'
Filename: controllers/admin_sona.php
Line Number: 19
A PHP Error was encountered
Severity: Warning
Message: Division by zero
Filename: controllers/admin_sona.php
Line Number: 19
是否可以使用符号作为对象检索数据库值?尝试更改此选项:
$row->wardno
为此:
$row['wardno']
豪斯诺也是这样
$row['houseno']
不知道数据库中是否有名为wardno/houseno
的字段,我认为您有两个不同的字段。如果是同一字段,我建议您在数据库中使用\uuu
而不是/
。如果是相同的字段,请尝试以下操作:
echo $row['wardno/houseno'];
function arrayToObject($array) {
if (!is_array($array)) {
return $array;
}
$object = new stdClass();
if (is_array($array) && count($array) > 0) {
foreach ($array as $name=>$value) {
$name = strtolower(trim($name));
if (!empty($name)) {
$object->$name = arrayToObject($value);
}
}
return $object;
}
else {
return FALSE;
}
}
$arr = arrayToObject($your_array);
要将数组转换为对象,请尝试以下操作:
echo $row['wardno/houseno'];
function arrayToObject($array) {
if (!is_array($array)) {
return $array;
}
$object = new stdClass();
if (is_array($array) && count($array) > 0) {
foreach ($array as $name=>$value) {
$name = strtolower(trim($name));
if (!empty($name)) {
$object->$name = arrayToObject($value);
}
}
return $object;
}
else {
return FALSE;
}
}
$arr = arrayToObject($your_array);
你能试着给我一些建议吗
foreach($q->result_array() as $row)
echo $row['wardno/houseno'];// or even echo $row['wardno\/houseno'];
而不是
foreach($q->result() as $row)
echo $row->wardno/houseno;
试试看
----编辑------
由于不希望将其转换为数组,请尝试
echo $row[17]; //Just try. I am not sure where it hurts the code. In case of error, let me know in comments
尝试像
echo$row->wardno;echo$row->houseno代码>在列名中使用斜杠不是正式的。尝试用下划线“”替换“/”。然后试着运行你的代码@user3017264在字段名中使用斜杠不是标准。可能正在更改为“\u”是最好的标准方式。@user3017264:如果您有解决方案,请告诉我们。。这会很有趣。k,我将字段名中的“/”替换为“\uu”完美。我添加了一个将数组转换为object@user3017264的函数。这是一种将数组转换回object的方法。。或者你也可以使用类似于#5、#6、#7的东西,你能打印($row)并单独给我第一行的结果吗?您可以通过提供索引来访问。严格来说,这是一个例子:$row[0]这也是一个尝试。!是的!这里是这样的,stdClass对象([app_id]=>2[app_no]=>1/ML/201314/TVM[office_code]=>TVM[category]=>SC[loan_id]=>5[app_name]=>Manu K[app_photo]=>B17916F172F50E0861392A0C46A924B.png[app符号]=>D3D339EDEC46C4418F9EAAF965FCD3F.jpg[dob]=>2013-12-18[性别]=>18[StateCd]=>LBP]=>51[villageCd]=>3[talukCd]=>3[wardno/houseno]=>A41(12/1234)[housename]=>Sreenilayam[ipaddress]=>10.162.21.14[app_status]=>1)尝试echo$row[17];再一次。。试试看。我把16岁改为17岁。。对不起,我的错