2 votes

Comment créer un tableau multidimensionnel en php pour les entrées suivantes

J'ai un format de tableau en entrée et je le convertis en tableau multidimensionnel.

Array
(
    [0] => Array
        (
            [third_party_id] => 2
            [third_party_name] => aardvarkg
            [parameter_id] => 221
            [parameter_name] => new2
            [param_value] => 1
            [sub_param_name] => new2_new2
            [sub_param_value] => 1_1
            [sub_bidder_id] => 72
        )
          [1] => Array
        (
            [third_party_id] => 2
            [third_party_name] => aardvarkg
            [parameter_id] => 222
            [parameter_name] => new
            [param_value] => 1
            [sub_param_name] => new
            [sub_param_value] => 1
            [sub_bidder_id] => 74
        )
    [2] => Array
        (
            [third_party_id] => 3
            [third_party_name] => aard
            [parameter_id] => 221
            [parameter_name] => new2
            [param_value] => 3
            [sub_param_name] => new2
            [sub_param_value] => th
            [sub_bidder_id] => 78
        )
)

J'ai besoin d'une sortie sous forme de tableau multidimensionnel, avec un tableau parent et un tableau enfant.

 [0] => Array
        (
            [third_party_id] => 2
            [third_party_name] => aardvarkg
            [param]                =>[parameter_id] => 221
                                  [parameter_name] => new2
                                  [param_value] => 1
                                  [subparam]           => [sub_param_name] => new2_new2
                                                   [sub_param_value] => 1_1
                                                    [sub_bidder_id] => 72
        )

J'ai besoin de la réponse à la sortie du format array ci-dessus toute aide sera appréciée.

2voto

Kavin Smk Points 618

Passez votre tableau bidimensionnel comme suit

foreach($yourarray as $key=>$array)
{ 
$i = 1;
    foreach($array as $names=>$values)
    {
    if($i<=2)
    {
    $multidimension[$key][$names] = $values; 
    }
    if($i>=3 && $i<=5)
    {
        $multidimension[$key]['param'][$names] = $values; 
    }
    if($i>5)
    {
        $multidimension[$key]['param']['subparam'][$names] = $values; 
    }
    $i++;
    }
}

print_r($multidimension); //expected array output

0voto

Satjeet Kaur Points 1

Je pense qu'il devrait être ainsi

$a = array
(
    array
        (
           "third_party_id" => 2,
            "third_party_name" => 'aardvarkg',
            "parameter_id" => 221,
            "parameter_name" => 'new2',

              "param" =>  array(
        "param_value" => 1),
              "sub_param" => array(
        "sub_param_name" => 'new2_new2',
        "sub_param_value" => '1_1',
        "sub_bidder_id" => 72)
    )

);
  print_r($a);

0voto

Kris Roofe Points 13087

Vous pouvez utiliser array_map et array_slice, vérifiez la rubrique Démonstration en direct .

$result = array_map(function($v){
  $temp = array_slice($v, 0, 2);
  $temp['param'] = array_slice($v, 2, 3);
  $temp['param']['subparam'] = array_slice($v, 5);
  return $temp;
}, $arr);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X