[英]Codeigniter / JSON - array result invalid
我的代碼中有一個奇怪的行為。
下划線模板:
<% _.each(pinnwand, function(item,key,list) { %>
<strong>Item: <%= item.name %></strong>
<% }); %>
<% _.each(pinnwand2, function(item,key,list) { %>
<strong>Item: <%= item.name %></strong>
<% }); %>
用於數組“ pinnwand”和“ pinnwand2”。
數組:
function getPinnwandData() {
header('Content-Type: application/json');
$array = $this->Pinnwand_model->getAllPinnwand($this->input->post('user_id'),"json");
$data['pinnwand'] = array();
foreach($array as $a) {
$data['pinnwand'][] = array("name" => strtolower($a['name']), "id" => $a['id']);
}
$data['pinnwand2'] = array(array('name' => 'MettWand',"id" => 1),array('name' => 'wurst2',"id" => 2));
echo json_encode($data);
}
奇怪的是,正在顯示“ pinnwand2”,而沒有顯示“ pinnwand”。
控制台日志顯示:
Object {pinnwand: Array[0], pinnwand2: Array[2]}
並且數據庫中肯定有一些“ pinnwand”的記錄。
這是“郵遞員”的json輸出:
{
"pinnwand": [
{
"name": "wurst wand",
"id": "1"
},
{
"name": "schinken wand",
"id": "2"
},
{
"name": "mett wand ",
"id": "3"
}
],
"pinnwand2": [
{
"name": "MettWand",
"id": 1
},
{
"name": "wurst2",
"id": 2
}
]
}
我想念什么? 謝謝!
編輯:
getAllPinnwand方法:
function getAllPinnwand($userId, $main = "all") {
if($main == "json") {
$query = $this->db->get_where('pinnwand', array('user_id' => $userId));
return $query->result_array();
} else {
$query = $this->db->get_where('pinnwand', array('user_id' => $userId));
$result = $query->result();
foreach($result as $r) {
$query1 = $this->db->get_where('pinnwand_content', array('pinnwand_id' => $r->id));
$r->content = $query1->result();
}
return $result;
}
}
更改:
foreach($array as $a)
{
$data['pinnwand'][] = array("name" => strtolower($a['name']), "id" => $a['id']);
}
至:
$csx = count($myarray)
for($x=0;$x<count($myarray);$x++)
{
$data['pinnwand'][$x] = array("name" => strtolower($myarray[$x]['name']),"id"=>$myarray[$x]['id']);
}
不要在代碼中使用$ array之類的保留關鍵字,而要使用其他名稱。 不要指望PHP正在創建新元素。 只需讓循環定義計數器!
看看是否可行...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.