在PHP变量中存储多个JSON对象值
我试图在php变量中为单个对象存储多个json值,但到目前为止都没有成功。当我尝试下面的代码时,它会存储对象的最后一个值,但不会同时存储这两个值在PHP变量中存储多个JSON对象值,php,json,object,Php,Json,Object,我试图在php变量中为单个对象存储多个json值,但到目前为止都没有成功。当我尝试下面的代码时,它会存储对象的最后一个值,但不会同时存储这两个值 $_POST = json_decode(file_get_contents('php://input')); foreach($_POST->repliesCounts as $replies_counts) { $replies_counts_userid = $replies_counts->userId . " | "; $rep
$_POST = json_decode(file_get_contents('php://input'));
foreach($_POST->repliesCounts as $replies_counts)
{
$replies_counts_userid = $replies_counts->userId . " | ";
$replies_counts_repliescount = $replies_counts->repliesCount . " | ";
}
以下是JSON字符串:
"repliesCounts":
[
{
"userId": 789,
"repliesCount": 4
},
{
"userId": 111,
"repliesCount": 3
}
]
我的问题是,如何在单个变量中存储这两组值?最好用|符号或类似符号分隔。
$repries\u counts\u userid=$repries\u counts->userid。" | ";代码>
此行将用新值完全替换旧值。您还需要在此处连接:
$replays\u counts\u userid.=$replays\u counts->userid。" | ";代码>
应该有用。(注意
前面的
)您可以json\u解码
,第二个参数为true
,以返回关联数组而不是对象。使用array\u column
从数组中提取列并将其转换为简单数组。使用内爆
加入简单数组
$str = '{"repliesCounts": [{ "userId": 789,"repliesCount": 4},{"userId": 111,"repliesCount": 3}]}';
$arr = json_decode($str, true);
//Make associative array into a simple array
$replies_counts_userid = array_column( $arr['repliesCounts'], 'userId' );
$replies_counts_repliescount = array_column( $arr['repliesCounts'], 'repliesCount' );
//implode array
$replies_counts_userid = implode(' | ', $replies_counts_userid);
$replies_counts_repliescount = implode(' | ', $replies_counts_repliescount);
这将导致
$replies_counts_userid = '789 | 111';
$replies_counts_repliescount = '4 | 3';
另外,如果您还没有在foreach
循环之外声明这些变量,这可能是一个好主意。太好了,谢谢!完全忘记了那件事。concat操作符只是一个注释,array\u column
在PHP7中也适用于对象数组。我不知道这一点。我们每天都学习新的东西。谢谢!:)谢谢,我选择了另一个答案,因为json字符串的其余部分已经编码为对象,但这是有用的信息