在php中动态创建具有索引值的数组

时间:2014-06-12 07:13:16

标签: php arrays dynamic-values

嗨我想用索引值和键值动态创建一个数组。

这里$ head是数组名称,$ values是键值

$head = Array ( [0] => Dis_id [1] => Dis_Desc [2] => Dis_Per [3] => Dis_val ) 
$values = Array ([0] => Dl-Dis1  [1] => Discount [2] => 7.500 [3] => 26.25 ) 
          Array ([0] => Dl-Dis2 [1] => Discount [2] => 2.500 [3] => 73.13 )

foreach($values as $valu => $key)
       {
         $value = $value + array($head[$valu]=>$key.",");
       }
echo '<pre>';
print_r($value);

输出将为

 Array
(
[Dis_id] => Dl-Dis2,
[Dis_Desc] => Discount,
[Dis_Per] => 2.500,
[Dis_val] => 73.13,
)

但我需要的输出如下

Array
(
[Dis_id] => Dl-Dis1,
[Dis_Desc] => Discount,
[Dis_Per] => 7.500,
[Dis_val] => 26.25,
)    
Array
(
[Dis_id] => Dl-Dis2,
[Dis_Desc] => Discount,
[Dis_Per] => 2.500,
[Dis_val] => 73.13,
)

我不知道该怎么办请帮帮我

更新以获取我的输出

$values = array(array (0 => 'Dl-Dis1',  1 => 'Discount', 2 => 7.500, 3 => 26.25 ), array (0 => 'Dl-Dis2', 1 => 'Discount', 2 => 2.500, 3 => 73.13 )) ;

谢谢大家

2 个答案:

答案 0 :(得分:2)

您可能需要使用array_combine。在循环下,将$head和值本身组合到它并将其放入新容器中。考虑这个例子:

$head = Array ( 0 => 'Dis_id', 1 => 'Dis_Desc', 2 => 'Dis_Per', 3 => 'Dis_val', );
$values = array(array (0 => 'Dl-Dis1',  1 => 'Discount', 2 => 7.500, 3 => 26.25 ), array (0 => 'Dl-Dis2', 1 => 'Discount', 2 => 2.500, 3 => 73.13 )) ;

$new_values = array();
foreach($values as $value) {
    $new_values[] = array_combine($head, $value);
}

Sample Output

答案 1 :(得分:1)

你可以这样做:

$head = array ( 0 => 'Dis_id',  1 => 'Dis_Desc', 2 => 'Dis_Per', 3 => 'Dis_val' );
$values = array(array (0 => 'Dl-Dis1',  1 => 'Discount', 2 => '7.500', 3 => 26.25 ),
      array (0 => 'Dl-Dis2', 1 => 'Discount', 2 => 2.500, 3 => 73.13 ));
$result = array();
foreach($values as $value) {
    $res = array();
    foreach ($value as $key => $val) {
        $res[$head[$key]] = $val;
    }
    $result[] = $res;
}
echo '<pre>';
print_r($result);