/ / Jak wstawić nową parę klucz-wartość w tablicy asocjacyjnej w PHP? [zamknięty] - php, tablice, tablica wielowymiarowa, tablica asocjacyjna

Jak wstawić nową parę klucz-wartość w tablicy asocjacyjnej w PHP? [zamknięty] - php, tablice, tablica wielowymiarowa, tablica asocjacyjna

Mam nazwę tablicy asocjacyjnej $classes_data następująco:

Array
(
[2] => Array
(
[class_id] => 2
[class_name] => II
[subjects] => Array
(
[0] => 11 Engllish
)

)

[3] => Array
(
[class_id] => 3
[class_name] => III
[subjects] => Array
(
[0] => Hidi
[1] => 11 Maths
[2] => 11 Science
[3] => 11 Engllish
)

)

[4] => Array
(
[class_id] => 4
[class_name] => IV
[subjects] => Array
(
[0] => Physics
)

)

[6] => Array
(
[class_id] => 6
[class_name] => VI
[subjects] => Array
(
[0] => Mathematics
[1] => dfadadadsagfasrsarasrarBiology
)

)

[7] => Array
(
[class_id] => 7
[class_name] => VII
[subjects] => Array
(
[0] => Physics
[1] => Chemistry11
[2] => 11 Science
)

)

[8] => Array
(
[class_id] => 8
[class_name] => VIII
[subjects] => Array
(
[0] => Hidi
[1] => 11 Engllish
)

)

[9] => Array
(
[class_id] => 9
[class_name] => IX
[subjects] => Array
(
[0] => Mathematics
[1] => Hidi
[2] => 11 Science
)

)

)

Klucze tablicy (tj. 2,3,4,6,7,8,9) są w ten sposób zamiast 0,1,2,3,4,5,6, ponieważ użyłem jednej funkcji do zmiany ich kolejności klawiatura.

Teraz chcę wstawić nowy klucz class_checked i ustaw jego początkową wartość jako 0 (to znaczy.class_checked =>"0").

Próbowałem wielu sztuczek, ale nie mogłem uzyskać pożądanego formatu tablicy. Czy ktoś może mi pomóc w tym, aby uzyskać pożądaną tablicę? Z góry dziękuję.

Dla twojej informacji wymagany format tablicy dla tablicy $classes_data będzie wyglądać następująco:

 Array
(
[2] => Array
(
[class_id] => 2
[class_name] => II
[class_checked] => 0
[subjects] => Array
(
[0] => 11 Engllish
)

)

[3] => Array
(
[class_id] => 3
[class_name] => III
[class_checked] => 0
[subjects] => Array
(
[0] => Hidi
[1] => 11 Maths
[2] => 11 Science
[3] => 11 Engllish
)

)

[4] => Array
(
[class_id] => 4
[class_name] => IV
[class_checked] => 0
[subjects] => Array
(
[0] => Physics
)

)

[6] => Array
(
[class_id] => 6
[class_name] => VI
[class_checked] => 0
[subjects] => Array
(
[0] => Mathematics
[1] => dfadadadsagfasrsarasrarBiology
)

)

[7] => Array
(
[class_id] => 7
[class_name] => VII
[class_checked] => 0
[subjects] => Array
(
[0] => Physics
[1] => Chemistry11
[2] => 11 Science
)

)

[8] => Array
(
[class_id] => 8
[class_name] => VIII
[class_checked] => 0
[subjects] => Array
(
[0] => Hidi
[1] => 11 Engllish
)

)

[9] => Array
(
[class_id] => 9
[class_name] => IX
[class_checked] => 0
[subjects] => Array
(
[0] => Mathematics
[1] => Hidi
[2] => 11 Science
)

)

)

Odpowiedzi:

4 dla odpowiedzi № 1

Próbować:

foreach($classes_data as $key=>$value) {
$classes_data[$key]["class_checked"] = 0;
}

3 dla odpowiedzi № 2
$array = array_map(function (array $i) { return $i + array("class_checked" => 0); }, $array);

Lub:

foreach ($array as &$i) {
$i["class_checked"] = 0;
}
unset($i);

0 dla odpowiedzi № 3

biorąc pod uwagę twój pierwszy $classes_data możesz to zrobić:

foreach($classes_data as &$class) {
$class["class_checked"] = 0;
}

teraz tablica powinna być taka, jaką chcesz.