PHP,使用数组进行操作


PHP, manipulation with array

我有来自POST的数组,如下所示:

  '0,id_product' =>  '217' 
  '0,checked' =>  '217'
  '0,price_setup_original' =>  '1.00' 
  '1,price_setup_original' =>  '7.00' 
  '1,price_setup_res' =>  '7.00' 
  '1,price_monthly_original' => '50.00' 
  '2,price_setup_res' => '0.00' 
  '2,price_monthly_original' =>  '40.00' 
  '2,price_monthly_res' =>  '40.00'

我想像这个例子一样迭代它,需要帮助!

array = (
0 -> array(
      'id_product' =>  '217',
      'checked' =>  '217',
      'price_setup_original' =>  '1.00' 
     ),
1 -> array(
      'id_product' =>  '217',
      'checked' =>  '217',
      'price_setup_original' =>  '1.00' 
     ),
);

需要帮助!

尝试:

$formatted = array();
$post = array(
  '0,id_product' =>  '217', 
  '0,checked' =>  '217',
  '0,price_setup_original' =>  '1.00', 
  '1,price_setup_original' =>  '7.00',
  '1,price_setup_res' =>  '7.00', 
  '1,price_monthly_original' => '50.00', 
  '2,price_setup_res' => '0.00', 
  '2,price_monthly_original' =>  '40.00', 
  '2,price_monthly_res' =>  '40.00'
);
foreach($post as $keys => $val){
    list($key1, $key2) = explode(",", $keys);
    $formatted[$key1][$key2] = $val;
}
var_dump($formatted);

代码板示例。

foreach将是您的选择:

$array = [
  '0,id_product' =>  '217' ,
  '0,checked' =>  '217',
  '0,price_setup_original' =>  '1.00' ,
  '1,price_setup_original' =>  '7.00' ,
  '1,price_setup_res' =>  '7.00' ,
  '1,price_monthly_original' => '50.00' ,
  '2,price_setup_res' => '0.00' ,
  '2,price_monthly_original' =>  '40.00' ,
  '2,price_monthly_res' =>  '40.00',
];
$result = [];
foreach($array as $key=>$item)
{
   $key = explode(',', $key);
   $result[$key[0]][$key[1]] = $item;
}

完成:

<?
$arr = array(
  '0,id_product' =>  '217',
  '0,checked' =>  '217',
  '0,price_setup_original' =>  '1.00', 
  '1,price_setup_original' =>  '7.00', 
  '1,price_setup_res' =>  '7.00', 
  '1,price_monthly_original' => '50.00', 
  '2,price_setup_res' => '0.00' ,
  '2,price_monthly_original' =>  '40.00', 
  '2,price_monthly_res' =>  '40.00');
$newArray = array();
foreach($arr as $key => $item){
    $tmp = explode(',',$key);
    $newArray[$tmp[0]][$tmp[1]]=$item;
}
print_r($arr);
print_r($newArray);
?>

见工作代码

如果你想在对象中发帖,试试这个,

<?
    $arr = array(
      '0,id_product' =>  '217',
      '0,checked' =>  '217',
      '0,price_setup_original' =>  '1.00', 
      '1,price_setup_original' =>  '7.00', 
      '1,price_setup_res' =>  '7.00', 
      '1,price_monthly_original' => '50.00', 
      '2,price_setup_res' => '0.00' ,
      '2,price_monthly_original' =>  '40.00', 
      '2,price_monthly_res' =>  '40.00');
    foreach($arr as $key => $item){
        $tmp = explode(',',$key);
        $newArray[$tmp[0]]->{$tmp[1]}=$item;
    }
?>