2016-05-13 6 views
0

私はキーを抽出しようとしています。これは変数$ form_idから値を取り出し、結果を新しい変数$ the_arrayに置きます。2つの配列を繰り返し、特定のキー/値を見つけて新しい単一の配列に入れます

<pre>Array 
(
    [title] = Contact Us 
    [description] = 
    [labelPlacement] = top_label 
    [id] = 2 
)</pre> 
"NULL Array" 

<pre>Array 
(
    [title] = Test 
    [description] = 
    [labelPlacement] = top_label 
    [id] = 3 
)</pre> 
"NULL" 

私がする新しい配列$ the_arrayをしたい:ここ

Array(
    [0] => Array(
    [title] => Contact Us 
    [id] => 2 
) 
    [1] => Array(
    [title] => Test 
    [id] => 3 
) 
) 

が私のコードです:

$ii = 0; 

foreach ($form_id as $gf_key => $form_id_value) { 

    if ($gf_key == 'title') { 

     $the_array[$ii] = array( 
      'title' => $form_id['title'], 
      'id' => $form_id['id'] 
     );          
    }  
    $ii++;    
} 

I画面へprint("<pre>".print_r($form_id,true)."</pre>");があるが、このようになります

私が得るのは2つの配列です:

<pre>Array 
(
    [0] = Array 
    (
     [title] = Contact Us 
     [id] = 2 
    ) 
) 
</pre> 
"NULL Array" 

<pre>Array 
(
    [0] = Array 
    (
     [title] = Test 
     [id] = 3 
    ) 
) 
</pre> 
"NULL" 

$ iiをエコーすると、$ form_idで最初の配列を繰り返したときに増加し、$ form_idで2番目の配列を繰り返したときに0にリセットされます。

答えて

0

ちょうどあなたが複数のform_id年代を持っている場合だけ、結果は私が使用foreachループと同じであるループ

+0

を使用して、この

function only ($array, $keys) { return array_intersect_key($array, array_flip((array) $keys)); } $the_array[] = only($form_id, ['title', ''id]); 

を試してみてください。インデックスが[0]に設定された2つの配列が返されます。私の説明の最後の例を参照してください。だからあなたと私の方法は同じ結果を生み出します。 – Jason

+0

form_idは配列か多次元配列ですか? – vijaykumar

+0

いいえ、私の質問の最初の例を参照してください。 – Jason

関連する問題