2017-11-01 8 views
0

APIに値を渡す配列があります。値を手動で追加しても問題はありませんが、値を配列内に変数を追加すると、値が配列として扱われるようです。PHP - 配列の変数が配列として表示される

これは動作します:

$post = array(

    'email'     => '[email protected]', 
    'first_name'    => 'John', 

); 

これは動作しません:

$totals = "'first_name' => 'John', 'email' => '[email protected]'", 

$post = array(

    $totals 

); 

APIからエラー応答がある:

[0] => 'first_name' => 'John', 'email' => '[email protected]', 

私を追加するための別の方法があるはず値をAPIの配列に渡しますか?

答えて

1

最初の例では、2つのキー(emailfirst_name)の配列である:

$post = array(
    'email'  => '[email protected]', 
    'first_name' => 'John', 
); 

あなたの第二の例ではこれと同じである。

$post = array(
    0 => "'first_name' => 'John', 'email' => '[email protected]'" 
); 

これはキーで、唯一のエントリを含みます0。その値はPHPコードのように見えます(ただし、そうではありません)。最初の例と同じことは間違いありません。

どうやらあなたの質問は、PHPで配列を処理する方法です。

PHP arraysについて読んでください。ドキュメントページでは、create arrays using array()access array elements using square bracketscreate/modify array elements using square bracketsの方法について説明しています。 PHPはまたfunctions to handle arraysをたくさん提供します。

ドキュメントを読み終えたら、複数の方法でアレイを構築して変更することができます。たとえば:

$post = array(); 
$post['email'] = '[email protected]'; 
$post['first_name'] = 'John'; 
あなたがラップする必要が
1

$totals = array(); 
$totals['first_name'] = 'John'; 
$totals['email'] = '[email protected]'; 

$post = $totals; 
print_r($post); 
2

がなぜ機能しない、次ん....これを試してみてください?値を囲む二重引用符"を配置することにより

$totals = "'first_name' => 'John', 'email' => '[email protected]'" 

、あなたは$totalsに文字列を代入し、それが配列を作成するために期待しています。

修正する方法はいくつかあります。オプション1

$post['first_name'] = 'John'; 
$post['email'] = '[email protected]'; 

別のオプション:

$post = array('first_name' => 'John', 'email' => '[email protected]'); 

そして、別のオプション:

$totals = array('first_name' => 'John', 'email' => '[email protected]'); 
$post = $totals; 

私は$totals値がどこから来ているか分からないため、多くのオプションがあるかもしれません。

1

あなたは基本的には直接は不可能である文字列

$totals = "'first_name' => 'John', 'email' => '[email protected]'"; 

から配列を作成しようとしているそれは価値 で文字列を作成します「FIRST_NAME」=>「ジョン」、「メール」=> ' [email protected]」今、あなたの文

$post = array($totals); 

は基本的にゼロのインデックスで$ポスト配列にその文字列を代入され

1

は、正方形のbraces.Thisとキー部分は動作します

$totals = "['first_name'] => 'John', ['email'] => '[email protected]'"; 

$post = array($totals); 

print_r($post); 
関連する問題