1

2 db の結果を組み合わせて、次のような配列を作成しようとしています。

array(
    0=>array( 
      'name'=>'John',
      'title'=>'manager',
      'email'=>'test',
      'permission'=>'1',
      'depart'=>'human resource'
      ),
    1=>array(
      'name'=>'Ted',
      'title'=>'employee',
      'email'=>'test2',
      'permission'=>'2',
      'depart'=>'human resource'
   )
)

最初の 3 つの要素は 1 つの返された DB 結果からのもので、最後の 2 つの要素は別の DB 結果からのものです。

     $firstResults = DBCall::call(getName);  //get name,title,email or John and Ted as an array
     $secondResults = DBCall::call(getPermission);  //get permission and depart as an array

     //I then use array merge
     $userResults=array_merge($firstResults ,$secondResults);

     //but it will become

array(
    0=>array( 
      'name'=>'John',
      'title'=>'manager',
      'email'=>'test'

      ),
    1=>array(
      'name'=>'Ted',
      'title'=>'employee',
      'email'=>'test2'

   ),
    2=>array(
      'permission'=>'1',
      'depart'=>'human resource'
   ),
    3=>array(
      'permission'=>'2',
      'depart'=>'human resource'   
   )
)

とにかく必要な結果をアーカイブする方法はありますか? どうもありがとう!

4

1 に答える 1

2

これは問題なくテストされているようです。http://www.laprbass.com/RAY_temp_flyingcat.php

<?php // RAY_temp_flyingcat.php
error_reporting(E_ALL);
echo "<pre>";

// SIMULATE DB RESULTS SETS
$getname = array(
    0=>array(
      'name'=>'John',
      'title'=>'manager',
      'email'=>'test',
      ),
    1=>array(
      'name'=>'Ted',
      'title'=>'employee',
      'email'=>'test2',
   )
)
;

$getperm = array(
    0=>array(
      'permission'=>'1',
      'depart'=>'human resource'
      ),
    1=>array(
      'permission'=>'2',
      'depart'=>'human resource'
   )
)
;

// MERGE THE ARRAYS SENSIBLY
foreach ($getname as $key => $arr)
{
    $getboth[$key] = array_merge($getname[$key], $getperm[$key]);
}

// SHOW THE WORK PRODUCT
print_r($getname);
print_r($getperm);
print_r($getboth);

よろしく、〜レイ

于 2012-12-28T20:45:31.377 に答える