array_push dentro de función no actualiza array principal
Publicado por Alex Montoya (4 intervenciones) el 27/02/2020 16:58:53
Hola. Estoy tratando de hacer un array_push desde mi función a un array que se encuentra fuera de la función. Necesito encontrar el id dentro del array y hacer un array_push en la posición indicada. El push sí se hace, pero el array principal no se actualiza. Podrían ayudarme por favor. Este es mi código, gracias:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
$estructura = array(
"Tipo"=>"Líder",
"Nombre"=>"Jaime",
"Empresarios"=>[
["Tipo"=>"Empresario", "Nombre"=>"Gloria", "id"=>"233", "invitados"=> [
["Tipo"=>"Invitado", "Nombre"=>"María Juana", "id"=>"117", "invitados"=> []],
["Tipo"=>"Invitado", "Nombre"=>"Mario López", "id"=>"230", "invitados"=> []]
]
],
["Tipo"=>"Empresario", "Nombre"=>"Andrés", "id"=>"28", "invitados"=> [
["Tipo"=>"Invitado", "Nombre"=>"Camila", "id"=>"281", "invitados"=> [
["Tipo"=>"Invitado", "Nombre"=>"Laura", "id"=>"57", "invitados"=> []],
["Tipo"=>"Invitado", "Nombre"=>"Alex", "id"=>"84", "invitados"=> [
["Tipo"=>"Invitado", "Nombre"=>"Catalina", "id"=>"900", "invitados"=> []],
["Tipo"=>"Invitado", "Nombre"=>"Juan", "id"=>"700", "invitados"=> []]
]
],
["Tipo"=>"Invitado", "Nombre"=>"Miguel", "id"=>"10", "invitados"=> []],
]
],
["Tipo"=>"Invitado", "Nombre"=>"Omar", "id"=>"282", "invitados"=> []]
]
]
]
);
$array = $estructura['Empresarios'];
function buscarId(&$array, $id) {
foreach($array as $key => $value) {
if($value['id'] == $id) {
$invitado = array("Tipo"=>"Invitado", "Nombre"=>"Gonzalo", "id"=>"91", "invitados"=> []);
array_push($value['invitados'], $invitado);
break;
} else {
if(count($value['invitados']) > 0) {
$arr = $value['invitados'];
buscarId($arr, $id);
}
}
}
return $array;
}
$test = buscarId($array, 700);
Valora esta pregunta


0