我最近开始使用PHP处理JSON数据。现在我在联系表中的数据库中有一个JSON字符串。从数据库检索到的数据格式如下:
Array
(
[0] => Array
(
[id] => 18
[data] => {"name":"asdsa","email":"uneebmir321@yahoo.com","phone":"1321","subject":"asdsadsa","message":"ssa"}
)
[1] => Array
(
[id] => 19
[data] => {"name":"uneeb","email":"uneeb@nextcrawl.com","phone":"1232112","subject":"adadas","message":"dasdsa"}
)
[2] => Array
(
[id] => 20
[data] => {"name":"uneeb","email":"uneeb@nextcrawl.com","phone":"1311","subject":"sadasd","message":"sdadas"}
)
[3] => Array
(
[id] => 21
[data] => {"name":"uneeb","email":"uneebmir321@yahoo.com","phone":"13131231","subject":"asda","message":"asdsa"}
)
[4] => Array
(
[id] => 22
[data] => {"name":"asdsad","email":"sads@asda.com","phone":"1231","subject":"asd","message":"saadsa"}
)
)
现在,你可以看到id和data属性是两个不同的东西。为了将它们传递到视图中,我首先解码了JSON字符串。这是我处理上述情况的方法。
public function retrieve_contact_us(){
$data=$this->Menu->retrieve_contact_us();
$newarray['results']=array();
foreach($data as $d):
array_push($newarray['results'],json_decode($d['data'], true));
endforeach;
echo "<pre>";
print_r($newarray['results']);
//$this->load->view("admin/contactus",$newarray);
}
从上面返回的数组是:
Array
(
[0] => Array
(
[name] => asdsa
[email] => uneebmir321@yahoo.com
[phone] => 1321
[subject] => asdsadsa
[message] => ssa
)
[1] => Array
(
[name] => uneeb
[email] => uneeb@nextcrawl.com
[phone] => 1232112
[subject] => adadas
[message] => dasdsa
)
[2] => Array
(
[name] => uneeb
[email] => uneeb@nextcrawl.com
[phone] => 1311
[subject] => sadasd
[message] => sdadas
)
[3] => Array
(
[name] => uneeb
[email] => uneebmir321@yahoo.com
[phone] => 13131231
[subject] => asda
[message] => asdsa
)
[4] => Array
(
[name] => asdsad
[email] => sads@asda.com
[phone] => 1231
[subject] => asd
[message] => saadsa
)
)
现在这正是我想要的,现在我需要在前端添加一个删除功能,所以从逻辑上讲,我需要数据库中每一行的ID,正如您在最上面的数组中看到的那样,但它们是两个不同的东西,实际上我想要的是这个数组像这样。
Array
(
[0] => Array
(
[id] => 18
[name] => asdsa
[email] => uneebmir321@yahoo.com
[phone] => 1321
[subject] => asdsadsa
[message] => ssa
)
[1] => Array
(
[id] => 19
[name] => uneeb
[email] => uneeb@nextcrawl.com
[phone] => 1232112
[subject] => adadas
[message] => dasdsa
)
)
这是我迄今为止尝试的内容!
foreach($data as $d):
array_push($newarray['results'],$d['id']);
array_push($newarray['results'],json_decode($d['data'], true));
endforeach;
现在这返回的是:
Array
(
[0] => 18
[1] => Array
(
[name] => asdsa
[email] => uneebmir321@yahoo.com
[phone] => 1321
[subject] => asdsadsa
[message] => ssa
)
[2] => 19
[3] => Array
(
[name] => uneeb
[email] => uneeb@nextcrawl.com
[phone] => 1232112
[subject] => adadas
[message] => dasdsa
)
)
如您所见,它创建了一个完全独立于ID的索引,而我不想要这样。我希望对应的ID与它们的值在数组的同一索引中,就像我上面演示的那样。有什么帮助吗?