I'm using multi-dimensional input tags in my html:
Car 1
<input name="warehouse[cars][][name]" />
<input name="warehouse[cars][][model]" />
<input name="warehouse[cars][][year]" />
Car 2
<input name="warehouse[cars][][name]" />
<input name="warehouse[cars][][model]" />
<input name="warehouse[cars][][year]" />
The issue with that is that i'm getting some messed up array in the PHP side:
Array:warehouse->cars
(
    [0] => Array
        (
            [name] => Audi,
            [name] => BMW
        )
    [1] => Array
        (
            [model] => S4,
            [model] => X5
        )
    [2] => Array
        (
            [year] => 2010
            [year] => 2011
        )
)
As you see it's all separated instead of something like开发者_如何学JAVA:
$warehouse['cars'] = array(
 [0] => array(
     'name' => 'Audi',
     'model' => 'S4',
     'year' => '2010'
   )
 ....
)
How to fix/re-group this kind of array inputs?
P.S. i know i can do warehouse[cars][number here][name] but i prefer not to.
I suggest you reduce the complexity of the arrays, so your code will be easy to debug later. Instead of warehouse[cars][][name] and such you can use cars_names[], cars_models[] and so on.
So when you read the values you can use smthing like this
$j=0;
if(count($_POST['cars_names'])) foreach($_POST['cars_names'] as $car){
    $name = $car;
    $model= $_POST['cars_models'][$j];
    ...
    $j++;
}
Instead of letting PHP pick out the array keys for you, just specify them explicitly:
Car 1
<input name="warehouse[cars][1][name]" />
<input name="warehouse[cars][1][model]" />
Car 2
<input name="warehouse[cars][2][name]" />
<input name="warehouse[cars][2][model]" />
You might want to try something like this:
$cars = array(
  'car1', 
  'car2'
);
foreach($cars as $key => $car) {
  echo $car;
  echo '<input name="warehouse[cars]['.$key.'][name]" />';
  echo '<input name="warehouse[cars]['.$key.'][model]" />';
  echo '<input name="warehouse[cars]['.$key.'][year]" />';
}
You can iterate over the list and regroup the entries:
foreach ($_INPUT["warehouse"]["cars"] as $cars) {
    list($key, $value) = each($cars);
    $block[$key] = $value;
    if ($key == "year") {
        $result_list[] = $block;
        $block = array();
    }
}
That requires that year is really present for all entries.
 
         
                                         
                                         
                                         
                                        ![Interactive visualization of a graph in python [closed]](https://www.devze.com/res/2023/04-10/09/92d32fe8c0d22fb96bd6f6e8b7d1f457.gif) 
                                         
                                         
                                         
                                         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论