I have an array like this:
Array
(
[252] => Array
(
[0] => Array
(
[id] => 2929850
[titulo] => Film 1
[desc] => Incididunt sunt eu duis cillum enim duis consequat qui qui reprehenderit. Est voluptate cillum minim cupidatat. Fugiat pariatur veniam est consectetur cupidatat ipsum
[duration] => 00:40:39.92
)
[1] => Array
(
[id] => 2929848
[titulo] => Film 2
[desc] => Nostrud consequat enim labore occaecat est velit esse. Lorem magna eu sint magna
[duration] => 00:18:06.08
)
)
[251] => Array
(
[0] => Array
(
[id] => 2929796
[titulo] => Film 3
[desc] => Sint laboris anim ipsum officia consectetur. Aute quis ipsum veniam in ea do esse adipisicing exercitation
[duration] => 00:35:28.39
)
[1] => Array
(
[id] => 2929795
[titulo] => Film 4
[desc] => Adipisicing consequat cupidatat aliqua labore exercitation esse esse excepteur Lorem. Minim incididunt
[duration] => 00:43:22.48
)
)
)
I try to get the array keys inside [252]
and [251]
in this example I need to get 0
and 1
. So I did this:
foreach($file as $keys => $files){
$var = GetKey($files);
echo $var;
}
function GetKey($array){
foreach( $array as $key => $arrays){
return $key;
}
}
The problem is that this function only returns the zeros, I do not know why.
int (0)
int (0)
If I include an echo it works as expected with 0101 but I want a return not an echo.
foreach($file as $keys => $files){
$var = GetKey($files);
echo $var;
}
function GetKey($array){
foreach( $array as $key => $arrays){
echo $key;
}
}
What's the problem?
To make it easier to reproduce the problem, follow the structure of the array in a json
{
"252": [
{
"id": "2929850",
"titulo": "Film 1",
"desc": "Incididunt sunt eu duis cillum enim duis consequat qui qui reprehenderit. Est voluptate cillum minim cupidatat. Fugiat pariatur veniam est consectetur cupidatat ipsum",
"duration": "00:40:39.92"
},
{
"id": "2929848",
"titulo": "Film 2",
"desc": "Nostrud consequat enim labore occaecat est velit esse. Lorem magna eu sint magna",
"duration": "00:18:06.08"
}
],
"251": [
{
"id": "2929796",
"titulo": "Film 3",
"desc": "Sint laboris anim ipsum officia consectetur. Aute quis ipsum veniam in ea do esse adipisicing exercitation",
"duration": "00:35:28.39"
},
{
"id": "2929795",
"titulo": "Film 4",
"desc": "Adipisicing consequat cupidatat aliqua labore exercitation esse esse excepteur Lorem. Minim incididunt",
"duration": "00:43:22.48"
}
]
}
You might use a foreach
and set the $key
from the foreach as the key in the $result
array and use array_keys which returns an array to set that as the value that goes with that $key
$result = [];
foreach ($arrays as $key => $array) {
$result[$key] = array_keys($array);
}
There's a special function array_keys
that will get you keys:
$keys = array_map('array_keys', $file);
With a foreach
:
foreach ($file as $item) {
print_r(array_keys($item));
}