PHP数组从给定的数组创建

时间:2014-11-06 09:16:16

标签: php html

这是我的数组结构。

$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)

有人可以帮忙吗?

抱歉英文不好。

由于

5 个答案:

答案 0 :(得分:1)

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

应该这样做:)

答案 1 :(得分: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];
   }
}

答案 2 :(得分: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);

答案 3 :(得分: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)

答案 4 :(得分: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];    
}

你的意思是在你的问题中添加(长度= x)?