重新排列数组

时间:2015-10-07 06:22:08

标签: php arrays

我在提交表单时获取此数组

array
  'item' => 
    array
      0 => string 'Salt'
      1 => string 'Pepper'
  'quantity' => 
    array (size=2)
      0 => string '2 spoon'
      1 => string '5'

现在想要重新排列上面的数组,所以它应该看起来像

array
  '0' => 
    array
      'item' => string 'Salt'
      'quantity' => string '2 spoon'
  '1' => 
    array
      'item' => string 'Pepper'
      'quantity' => string '5'

我尝试了很多组合但是失败了,有人会帮我重新排列这个阵列。任何帮助都将得到更多的赞赏。

5 个答案:

答案 0 :(得分:3)

试试这个,我想这会对你有帮助,

$a = array(
        'item' =>
        array(
            0 => 'Salt',
            1 => 'Pepper'),
        'quantity' =>
        array(
            0 => '2 spoon',
            1 => '5')
    );

    $i = 0;
    foreach($a['item'] as $row){
        $b[$i]["item"] = $row;
        $b[$i]["quantity"] = $a['quantity'][$i];
        $i++;
    }
    print_r($b);

print_r()的输出将为

Array
(
    [0] => Array
        (
            [item] => Salt
            [quantity] => 2 spoon
        )

    [1] => Array
        (
            [item] => Pepper
            [quantity] => 5
        )

)

答案 1 :(得分:3)

如下所示 -

<?php
$arr=array(
  'item' => 
    array(
      0 => 'Salt' ,
      1 => 'Pepper'
       ),
  'quantity' => 
    array (
      0 =>'spoon',
      1 =>'5'
      )
);
$result=array();
$com=array_combine($arr['item'],$arr['quantity']);
foreach($com as $k=>$v)
{
   $result[]=array("item"=>$k,"quantity"=>$v);
}
print_r($result);
?>

<强>输出

 Array ( 
          [0] => Array ( [item] => Salt [quantity] => spoon )
          [1] => Array ( [item] => Pepper [quantity] => 5 ) 
          ) 

答案 2 :(得分:3)

试试这个

$array = array(
    'item' =>
    array(
        0 => 'Salt',
        1 => 'Pepper'),
    'quantity' =>
    array(
        0 => '2 spoon',
        1 => '5')
);
$new_array = array();
foreach ($array['item'] as $key => $value) {
    $new_array[$key]["item"] = $value;
    $new_array[$key]["quantity"] = $array['quantity'][$key];
}
echo "<pre>";
var_dump($new_array);

答案 3 :(得分:3)

您可以像{/ p>一样使用array_walk

$result = [];
array_walk($arr['item'], function($v, $k)use(&$result, $arr) {
   $result[$k]['item'] = $arr['item'][$k];
   $result[$k]['quantity'] = $arr['quantity'][$k];
});
print_r($result);

Demo

答案 4 :(得分:1)

希望您的数组存储在$array变量中,item正在引领。这意味着数组中始终存在一个项目,并不总是数量

<?php
foreach($array['item'] as $key => $item) {
   $newArray[$key]['item'] = $item;
   if (isset($array['quantity'][$key]) {
      $newArray[$key]['quantity'] = $array['quantity'][$key];
   } else {
      $newArray[$key]['quantity'] = 0;
}
?>