I have a php array which contains sometimes same values (in my example film 1 and film 2) and i would like to sort the result in order to keep only one time film 1 or film 2.
PHP array : $actors
Array
(
[0] => Array
(
[0] => film 1
[1] => actor A
)
[1] => Array
(
[0] => film 1
[1] => actor B
)
[2] => Array
(
[0] => film 2
[1] => actor C
)
[3] => Array
(
[0] => film 2
[1] => actor D
)
)
I can output the datas in a foreach loop :
$i = 0;
foreach ($films as $film):
echo $film[$i][0].'<br />';
echo $film[$i][1];
$i ++;
endforeach;
And i get a result like this :
film1 actor A film1 actor B film2 actor C film2 actor D
But i would like to have a result like this :
film 1
actor A
actor B
film 2
actor C
actor E
What i’ve done :
I made an array with films : $films
Array
(
[0] => stdClass Object
(
[name] => film1
)
[1] => stdClass Object
(
[name] => film2
)
And i check if datas in $films array exist in actors array :
$i = 0;
foreach ($films as $film):
foreach ($actors as $actor):
if ($film->name == $actor[$i][0]) {
echo $actor[$i][1].'<br />';
}
endforeach;
$i ++;
endforeach;
So this code works for me but is there a better solution ? In my solution, i have a foreach loop inside a foreach loop and it could consume a lot of ressources.