2017-11-17 22 views
0

私は2つの配列を持っている、またはそう思った。 1つはJavascriptオブジェクトをPOST経由でphpに渡し、もう1つは別のオブジェクトを返すJS APIからデータを取得します。私はこれらの配列の両方に参加したい。サンプルデータとその取得方法は次のとおりです。PHPの配列にjsonオブジェクトを追加

私はAPIから取得

名の配列: - 私のPHPスクリプトにPOST'dさ

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

ユーザーの配列: -

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

今、私は(TRY)に以下を使用し、これらのデータを両方とも同じアレイに入れてファイルに記録します。

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

$user = var_export($_POST, true); 

$detailstolog = $namejson + $user; 

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

しかし、最初の引数が有効な配列ではない(つまり、$ nameは無効です)というPHPエラーが表示されます。どうしてこれなの?それを配列にするには何ができますか?

「アレイ」という名前は実際には文字列だと思うので、エラーです。これを配列にするにはどうしたらいいですか?$ array1 + $ array2これを行う最も良い方法は?

は、私のようなものを作成しようとしています: - あなたが提供することができます任意の助け

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

感謝を!

+0

なぜAPIは文字列に分割された文字列を返すのですか? APIを正しく使用していますか? – Barmar

答えて

0

申し訳ありませんが、ここでJSONがどこに関わっているのか分かりません。配列を扱っているので、はデコードする必要はありません。 JSONからのものです。
最初の配列は "David"という文字列に分割されているようです。

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

彼は 'file_get_contents("/api ")'でデータを取得しています。これはJSONが関係する場所です。 – Barmar

+0

あなたのコードは、追加される要素に 'name'キーを使用しません。 – Barmar

+0

@Barmar、キーを無視してごめんね、更新しました。しかし、彼は 'var_dump()'呼び出しで 'array'を取得して以来、JSONからデコードする必要はありません。 –

0

コピー$_POST配列を新しい変数に、それに名前を追加します。そして、あなたはそれをimplodeし、最初の要素としてあなたdetailstologのアレイに追加する必要があります。

$detailstolog = $_POST; 
$name = implode('', $namejson); 
$detailstolog['name'] = $name; 
関連する問題