Динамически создавая массив со значением индекса в php

Привет я хочу создать массив динамически со значением индекса и значения ключа.

здесь $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 ответа

Решение

Вам может понадобиться использовать 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);
}

Пример вывода

Вы можете сделать это так:

$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);
Другие вопросы по тегам