Ani*_*udh 7 php arrays foreach
我的代码:场景1
$newarray = array();
foreach($rows as $k => $v)
{
$newarray[$k] = $v;
$newarray['newitem'] = 'Add this to existing object';
}
echo json_encode($newarray);
Run Code Online (Sandbox Code Playgroud)
我也尝试过:场景2
$newarray = array();
foreach($rows as $k => $v)
{
$newarray[$k] = $v;
$newarray[$k]['newitem'] = 'Add this to existing object';
}
echo json_encode($newarray);
Run Code Online (Sandbox Code Playgroud)
在场景 1 中,仅在第一个对象之后添加键值对。它不会循环通过。在场景 2 中,我收到 HTTP ERROR 500
我在这里做错了什么?
更新:
现有输出:
[{"pid":"123","date":"2016-08-23 08:08:40","post_title":"AHHH"},{"pid":"223","date":"2016-08-23 08:08:40","post_title":"wwwwAHHH"},{"pid":"223","date":"2016-08-23 08:08:40","post_title":"xxxAHHH"}]
Run Code Online (Sandbox Code Playgroud)
所需输出:
[{"pid":"123","date":"2016-08-23 08:08:40","post_title":"AHHH","newkey":"new value1"},{"pid":"223","date":"2016-08-23 08:08:40","post_title":"wwwwAHHH","newkey":"new value2"},{"pid":"223","date":"2016-08-23 08:08:40","post_title":"xxxAHHH","newkey":"new value3"}]
Run Code Online (Sandbox Code Playgroud)
您可以创建一个包含所需内容的临时数组,然后将其添加到 newarray 中,因此创建一个临时数组,添加新数据和现有数据,然后将其添加到 newarray 中
\n\n$newarray = array();\nforeach($rows as $k => $v) \n{\n $t = $v;\n $t[\'newitem\'] = \'Add this to existing object\';\n $newarray[$k] = $t;\n}\necho json_encode($newarray);\n
Run Code Online (Sandbox Code Playgroud)\n\n编辑:
\n\n现在我知道里面$rows
是一个 JSON 字符串,这是执行您想要的操作的方法。您不能对 JSON 字符串进行 foreach,必须首先将其转换为 PHP 数据结构,然后对其进行 foreach 添加新数据,然后将其转换回 JSON 字符串
$rows = \'[{"pid":"123","date":"2016-08-23 08:08:40","post_title":"AHHH"},{"pid":"223","date":"2016-08-\xe2\x80\x8c\xe2\x80\x8b23 08:08:40","post_title":"wwwwAHHH"},{"pid":"223","date":"2016\xe2\x80\x8c\xe2\x80\x8b-08-23 08:08:40","post_title":"xxxAHHH"}]\';\n\n$objArray = json_decode($rows);\n\n$newarray = array();\nforeach($objArray as $v) \n{\n\n $v->newitem = \'Add this to existing object\';\n $newarray[] = $v;\n}\nprint_r($newarray);\necho json_encode($newarray);\n
Run Code Online (Sandbox Code Playgroud)\n\n$newArray
现在是
Array\n(\n [0] => stdClass Object\n (\n [pid] => 123\n [date] => 2016-08-23 08:08:40\n [post_title] => AHHH\n [newitem] => Add this to existing object\n )\n\n [1] => stdClass Object\n (\n [pid] => 223\n [date] => 2016-08-\xe2\x80\x8c\xe2\x80\x8b23 08:08:40\n [post_title] => wwwwAHHH\n [newitem] => Add this to existing object\n )\n\n [2] => stdClass Object\n (\n [pid] => 223\n [date] => 2016\xe2\x80\x8c\xe2\x80\x8b-08-23 08:08:40\n [post_title] => xxxAHHH\n [newitem] => Add this to existing object\n )\n\n)\n
Run Code Online (Sandbox Code Playgroud)\n\n新的 JSON 字符串将是
\n\n[ {"pid":"123",\n "date":"2016-08-23 08:08:40",\n "post_title":"AHHH",\n "newitem":"Add this to existing object"\n },\n {"pid":"223",\n "date":"2016-08-\\u200c\\u200b23 08:08:40",\n "post_title":"wwwwAHHH",\n "newitem":"Add this to existing object"\n },\n {"pid":"223",\n "date":"2016\\u200c\\u200b-08-23 08:08:40",\n "post_title":"xxxAHHH",\n "newitem":"Add this to existing object"\n }\n]\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
8593 次 |
最近记录: |