2014-11-06 143 views
0

这是我的数组结构。从给定数组创建PHP阵列

$arr = array(
    'Tablet'=>array('test1','test2'), 
    'Medicine'=>array('abc1'.'abc2'), 
    'Dosage'=>array('1','1'), 
    'Mode'=>array('testmode1','testmodel2'), 
    'Since'=>array('mng','mng') 
); 

我想创建一个这样的数组。

array 
    0 => 
    array 
     'Tablet' => string 'test1' (length=5) 
     'Medicine' => string 'abc1' (length=4) 
     'Dosage' => string '1' (length=1) 
     'Mode' => string 'testmode1' (length=9) 
     'Since' => string 'mng' (length=3) 
    1 => 
    array 
     'Tablet' => string 'test2' (length=5) 
     'Medicine' => string 'abc1' (length=4) 
     'Dosage' => string '1' (length=1) 
     'Mode' => string 'testmode2' (length=9) 
     'Since' => string 'mng' (length=3) 

有人可以帮忙吗?

对不起,英语不好。

感谢

回答

1
$new = []; 
foreach ($arr as $key => $sub) { 
    $i = 0; 
    foreach ($sub as $value) { 
     $new[$i][$key] = $value; 
     $i++; 
    } 
} 

这应该做的伎俩:)

+0

谢谢。有用。 – 2014-11-06 09:33:21

1
$newArr = array(); 

foreach ($arr as $key => $subArr){ 
    for ($i= 0; $i < count($subArr); $i++){ 
     if (!array_key_exists($i, $newArr)){ 
      $newArr[$i] = array(); 
     } 
     $newArr[$i][$key] = $subArr[$i]; 
    } 
} 
+0

谢谢@ sergio0983 – 2014-11-06 09:35:26

1
$arr = array(
     'Tablet'=>array('test1','test2'), 
     'Medicine'=>array('abc1','abc2'), 
     'Dosage'=>array('1','1'), 
     'Mode'=>array('testmode1','testmodel2'), 
     'Since'=>array('mng','mng') 
    ); 
     $na=array(); 
     foreach($arr as $k=>$v){ 

      foreach($v as $kk=>$vv){ 
      $na[$kk][$k]=$vv; 
      } 

     } 

     echo "<pre>";print_r($na); 
0

容易就可以每一个追加到正常的阵列这样

$arr1 = array(
    'Tablet'=>array('test1','test2'), 
    'Medicine'=>array('abc1'.'abc2'), 
    'Dosage'=>array('1','1'), 
    'Mode'=>array('testmode1','testmodel2'), 
    'Since'=>array('mng','mng') 
); 

$arr2 = array(
    'Tablet'=>array('test1','test2'), 
    'Medicine'=>array('abc1'.'abc2'), 
    'Dosage'=>array('1','1'), 
    'Mode'=>array('testmode1','testmodel2'), 
    'Since'=>array('mng','mng') 
); 

$arr3 = array(
    'Tablet'=>array('test1','test2'), 
    'Medicine'=>array('abc1'.'abc2'), 
    'Dosage'=>array('1','1'), 
    'Mode'=>array('testmode1','testmodel2'), 
    'Since'=>array('mng','mng') 
); 


$a=array(); 

array_push($a,arr1,arr2,arr3); 

print_r($a); 

输出如下

array 
    0 => 
    array 
     'Tablet' => string 'test1' (length=5) 
     'Medicine' => string 'abc1' (length=4) 
     'Dosage' => string '1' (length=1) 
     'Mode' => string 'testmode1' (length=9) 
     'Since' => string 'mng' (length=3) 
    1 => 
    array 
     'Tablet' => string 'test2' (length=5) 
     'Medicine' => string 'abc1' (length=4) 
     'Dosage' => string '1' (length=1) 
     'Mode' => string 'testmode2' (length=9) 
     'Since' => string 'mng' (length=3) 
0
$myLength = count($arr['Tablet']) 
$newArray = array(); 
for (i=0; i < $myLength ; i++) 
{ 
    $newArray[i]['Tablet'] = $arr['Tablet'][i]; 
    $newArray[i]['Medicine'] = $arr['Medicine'][i]; 
    $newArray[i]['Dosage'] = $arr['Dosage'][i]; 
    $newArray[i]['Mode'] = $arr['Mode'][i]; 
    $newArray[i]['Since'] = $arr['Since'][i];  
} 

那你意味着增加你的问题了(lentgh = X)?