добавить ассоциативный массив в другой - PullRequest
0 голосов
/ 19 июня 2020

Я хочу добавить один ассоциативный массив в другой, но когда я использую array_pu sh, он переопределяет значение предыдущего

<?php
$tem = ["blue","ss"];
$len = count($tem);
print_r($len);
for($i=0;$i<$len;$i++){
    $data = [
        'code' => $tem[$i],
        'discount_type' => 'percent',   
    ];
    $a=array();
    $result[$i] =array_push($a,$data);
    print_r($a);
}
?>

, и на выходе получается

2Array ( [0] => Array ( [code] => blue [discount_type] => percent ) ) 
 Array ( [0] => Array ( [code] => ss [discount_type] => percent ) )

1 Ответ

0 голосов
/ 19 июня 2020

Единственная проблема в том, что вы сбрасываете массив $a внутри l oop, поэтому он всегда будет содержать только последний элемент. Кроме того, вы не назначаете возврат из array_push(), поскольку он обновляет сам массив (но вы никогда не используете $result[$i] в любом случае) ...

Таким образом, ваш код будет выглядеть примерно так ..

$tem = ["blue","ss"];
$len = count($tem);
print_r($len);
$a=array();
for($i=0;$i<$len;$i++){
    $data = [
            'code' => $tem[$i],
            'discount_type' => 'percent',
    ];
    array_push($a,$data);
}
print_r($a);

Вы также можете сократить код, используя foreach l oop и создавая массив по мере добавления его к результату ...

$tem = ["blue","ss"];
$a=array();
foreach ( $tem as $t )  {
    $a[] = [
        'code' =>  $t,
        'discount_type' => 'percent',
    ];
}
print_r($a);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...