2017-06-08 30 views
2

オブジェクトを作成するたびにキー値を取得し、次により具体的なオブジェクトを作成するように、複数の配列を1つに表示したいとします。1つのJSONオブジェクトで複数の配列を結合する方法

それが今どのように私はPHPでこれを輸出しています

xyz:[{name:{}, surname{}, phone{}}, 
    {name:{}, surname{}, phone{}}, 
    {name:{}, surname{}, phone{}}] 

私はNG-繰り返しディレクティブAngularJsにこのJSONオブジェクトを使用できるように:私はそれになりたい方法

name:[{},{},{},{}] 
surname:[{},{},{},{}] 
phone: [{},{},{},{}] 

  1. 宣言配列:

    $name = array(); 
    $surname= array(); 
    $phone= array(); 
    
  2. 割り当てる値各ループ

    $name[] = $values ($values wil have the values for the loop) 
    ..... 
    
  3. テスト出力

    FOR下にある

    次のコードであります

    <?php echo json_encode($name); 
        echo json_encode($surname); 
        echo json_encode($phone); 
    ?> 
    
+0

配列をその配列の内側に置くだけです:$ finalArr = [$ name、$ surname]; – DaAmidza

+0

1つの小さなアドバイス。私はむしろ、すべてのバックグラウンドジョブを処理するRESTful APIを作成するために多くの時間を費やすことになります。フォーム角度はコールを行います。スリムでそれを簡単に実行してください。 – DaAmidza

+0

@FirstOneこれはMagentoサイトなので、データはForループで返されます。 –

答えて

1

それを行うための簡単な方法(run):

$name = array("name 1", "name 2"); 
$surname = array("surname 1", "surname 2"); 
$phone = array("phone 1", "phone 2"); 

$output = array(); 
for($i = 0; $i < count($name); $i++){ 
    $output[] = array(
      'name' => $name[$i], 
      'surname' => $surname[$i], 
      'phone' => $phone[$i], 
     ); 
} 

print_r($output); 

出力:

Array 
(
    [0] => Array 
     (
      [name] => name 1 
      [surname] => surname 1 
      [phone] => phone 1 
     ) 

    [1] => Array 
     (
      [name] => name 2 
      [surname] => surname 2 
      [phone] => phone 2 
     ) 

) 

注:これは、すべての配列が同じサイズであり、同じキーを前提としています。

しかし、各値を3つの異なる変数に保存する代わりに、このスクリプトを実行すると、配列に既に値を希望の出力として保存することをお勧めします(可能であれば、もちろん可能です知っている)。

関連する問題