Добавление ключей к элементам массива

#php #arrays #key

Вопрос:

Допустим, у меня есть массив, выглядящий так:

 $array = [1, 2, 3];
 

Теперь я хочу добавить ключ «id» к каждому элементу в приведенном выше массиве, чтобы структура массива выглядела следующим образом:

 Array
(
    [0] => Array
    (
        [id] => 1,
    )

    [1] => Array
    (
        [id] => 2,
    )

    [2] => Array
    (
        [id] => 3,
    )  
)
 

Я не могу понять, как это решить, кто-нибудь знает?

Комментарии:

1. Ну, вы не можете сделать это таким образом, так как у вас все равно было бы 3 ключа в массиве (дубликаты). Это не законно и не возможно

2. Так не пойдет. Ключи массива должны быть уникальными.

3. В любом случае, если бы они все id были такими, в чем был бы смысл. Просто назовите массив лучшим именем, например $id_array

4. Дубликат ключа невозможен. Вместо этого вы можете использовать этот код <?php $array = [1, 2, 3]; $array2=array(); foreach( $array as $key => $value ){ $array2[]=array("id"=>$value); } print_r($array2); ?> , если хотите использовать то же значение ключа, но под другим ключом массива.

5. Лучшее, что вы можете получить в этом случае, — это массив, подобный этому $array = ['id' => [1, 2, 3]] . Как уже отмечалось, вы не можете использовать дубликаты ключей в массиве. Присвоение значений одному и тому же ключу приведет к перезаписи предыдущего значения.

Ответ №1:

В соответствии со ссылкой на массивы. Дубликат ключа в массиве невозможен. Вместо этого вы можете использовать приведенный ниже код. если вы хотите использовать тот же ключ, но под другим ключом массива.

 <?php  

$array = [1, 2, 3];  

$array2=array(); 
 
foreach( $array as $key => $value )
{     
$array2[]=array("id"=>$value); 
}  

print_r($array2);  ?>
 

Результат будет выглядеть следующим образом

 Array
(
    [0] => Array
        (
            [id] => 1
        )

    [1] => Array
        (
            [id] => 2
        )

    [2] => Array
        (
            [id] => 3
        )

)
 

Ответ №2:

Используйте это для получения вашего разнесенного массива с тем же значением ключа, но под другим ключом массива :

 <?php

$array = [1, 2, 3]; 
$newarray=array(); 

foreach( $array as $key => $value ){
    
    $newarray[]=array("id"=>$value); 

} 

print_r($newarray); 
 

Это даст вам :

 Array
(
    [0] => Array
        (
            [id] => 1
        )

    [1] => Array
        (
            [id] => 2
        )

    [2] => Array
        (
            [id] => 3
        )

)