在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

我试图在php变量中为单个对象存储多个json值,但到目前为止都没有成功。当我尝试下面的代码时,它会存储对象的最后一个值,但不会同时存储这两个值

$_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字符串的其余部分已经编码为对象,但这是有用的信息