将json对象添加到php数组

时间:2017-11-17 00:57:06

标签: php arrays

我有两个数组,或者我想。一个通过POST将Javascript对象传递给php,另一个从JS API返回另一个对象的数据。我想加入这两个数组。这是样本数据及其获取方式。

我从API获得的名称数组: -

array(5) { [0]=> string(1) "D" [1]=> string(1) "a" [2]=> string(1) "v" [3]=> string(1) "i" [4]=> string(1) "d" }

用户数组,它是我的PHP脚本的POST: -

array (
  'userID' => '12345',
  'time' => 'Monday 26th June 2017 22:12:37 AM',
)

现在我使用以下内容(尝试)并将这两部分数据放入同一个数组中以记录到文件中。

$nameoriginal = file_get_contents("/api");
$namejson = json_decode($name);

$user = var_export($_POST, true);

$detailstolog = $namejson + $user;

file_put_contents('/logs/names.log', $detailstolog);

但是,我收到一个php错误,指出第一个参数不是有效数组(即$ name无效)。为什么是这样?我能做些什么才能做到'它是一个阵列?

我认为名字'阵列'实际上是一个字符串,因此错误。我如何使这个数组,$ array1 + $ array2是最好的方法吗?

我正在尝试创建类似的东西: -

array (
  'name' => 'david',
  'userID' => '12345',
  'time' => 'Monday 26th June 2017 22:12:37 AM',
)

感谢您提供的任何帮助!

2 个答案:

答案 0 :(得分:0)

很抱歉,但我不明白这里涉及JSON的位置,你正在处理数组,因此无需从JSON中解码任何内容。
第一个数组似乎是“大卫”这个词分成了字符。然后你只需要implode并将它作为第一个元素添加到detailstolog数组中:

$detailstolog['name'] = implode("", $nameoriginal); // David
$detailstolog += $_POST;

答案 1 :(得分:0)

$_POST数组复制到新变量,然后将名称添加到其中。

$detailstolog = $_POST;
$name = implode('', $namejson);
$detailstolog['name'] = $name;