2011-03-29 219 views
0

朋友你好我有这样的阵列转换阵列到另一个阵列

Array 
(
    [fieldset_name] => Personal Details 
    [field_name] => applicant_name 
    [field_label] => Your Name 
    [field_type] => text 
    [css_classes] => required 
    [minlength] => 4 
    [maxlength] => 10 
    [default_value] => 
    [help_text] => 
) 
Array 
(
    [fieldset_name] => Personal Details 
    [field_name] => applicant_address 
    [field_label] => Address 
    [field_type] => textarea 
    [css_classes] => required 
    [minlength] => 4 
    [maxlength] => 10 
    [default_value] => 
    [help_text] => 
) 

,我想结果应该为

Array(
"Personal Details" => array(
    array(
    'fieldset_name' => "Personal Details" 
    field_name => applicant_name 
    field_label => Your Name 
    ), 
    array(
    'fieldset_name' => "Personal Details" 
    field_name => applicant_address 
    field_label => Address 
    ), 

) 
) 

那么如何做到这一点

+0

我很怀疑你的第二个数组声明代码是否可编译 – heximal 2011-03-29 06:12:19

+1

除了'fieldset_name'(“个人详细信息”)是什么来自原始数组? – Phil 2011-03-29 06:16:08

+0

请将您的确切数组粘贴到[pastebin](http://pastebin.com/)以及所需的数组中 – diEcho 2011-03-29 06:18:47

回答

0

我相信这是什么(未经测试):

$resultArray = array(); 
foreach($originalArray as $value) 
{ 
    $key = $value[ 'fieldset_name' ]; 
    if(!isset($resultArray[ $key ])) 
    { 
     $resultArray[ $key ] = array(); 
    } 

    $resultArray[ $key ][] = array(
     'fieldset_name' => $key, 
     'field_name' => $value[ 'field_name' ], 
     'field_label' => $value[ 'field_label' ] 
    ); 
} 

var_dump($resultArray); 
0

让我们来看看,我们有两个数组,你想要什么是推动这两个为一..

$a= array(
    [fieldset_name] => Personal Details 
    [field_name] => applicant_name 
    [field_label] => Your Name 
    [field_type] => text 
    [css_classes] => required 
    [minlength] => 4 
    [maxlength] => 10 
    [default_value] => 
    [help_text] => 
); 

    $b=array(
[fieldset_name] => Personal Details 
[field_name] => applicant_address 
[field_label] => Address 
[field_type] => textarea 
[css_classes] => required 
[minlength] => 4 
[maxlength] => 10 
[default_value] => 
[help_text] => 
); 

$c=array(); 
$c[]=$a; 
$c[]=$b; 

$ C是需要

0

只是尝试用下面的数组:

PHP部分:

<?php 
$array_name = array('fieldset_name'=>'Personal Details', 
      'field_name'=>'applicant_name', 
      'field_label'=>'Your Name', 
      'field_type'=>'text', 
      'css_classes'=>'required', 
      'minlength'=>'4', 
      'maxlength'=>'10', 
      'default_value'=>'', 
      'help_text'=>''); 

$array_address = array('fieldset_name'=>'Personal Details', 
      'field_name'=>'applicant_address', 
      'field_label'=>'Address', 
      'field_type'=>'textarea', 
      'css_classes'=>'required', 
      'minlength'=>'4', 
      'maxlength'=>'10', 
      'default_value'=>'', 
      'help_text'=>''); 

$array_personal_details = array('Personal Details'=> array($array_name,$array_address)); 

echo '<pre>'; 
print_r($array_personal_details);   
echo '</pre>'; 

?> 

我认为这可以帮助你解决你的问题。