Mam tablicę PHP, którą chciałbym powielić, ale tylko skopiować elementy z tablicy, której klucze pojawiają się w innej tablicy.Tablica PHP kopiuje określone klucze, wbudowane funkcje? Zagnieżdżona wydajność pętli?
Oto moje tablice:
$data[123] = 'aaa';
$data[423] = 'bbb';
$data[543] = 'ccc';
$data[231] = 'ddd';
$data[642] = 'eee';
$data[643] = 'fff';
$data[712] = 'ggg';
$data[777] = 'hhh';
$keys_to_copy[] = '123';
$keys_to_copy[] = '231';
$keys_to_copy[] = '643';
$keys_to_copy[] = '712';
$keys_to_copy[] = '777';
$copied_data[123] = 'aaa';
$copied_data[231] = 'ddd';
$copied_data[643] = 'fff';
$copied_data[712] = 'ggg';
$copied_data[777] = 'hhh';
mogłem tylko pętla przez tablicę danych jak poniżej:
foreach ($data as $key => $value) {
if (in_array($key, $keys_to_copy)) {
$copied_data[$key] = $value;
}
}
Ale to będzie się działo wewnątrz pętli, która jest pobieranie danych z wyniku MySQL zestaw. Więc byłoby pętlą zagnieżdżoną w pętli danych MySQL. Zazwyczaj staram się unikać zagnieżdżonych pętli, chyba że nie ma możliwości użycia wbudowanych funkcji tablic PHP, aby uzyskać wynik, którego szukam. Ale jestem również zmęczony posiadaniem zagnieżdżonej pętli w pętli danych MySQL, nie chcę utrzymywać MySQL w ruchu.
Prawdopodobnie niepotrzebnie niepotrzebnie zagnieżdżona wydajność pętli, ponieważ nigdy nie będę tego robił dla więcej niż kilkuset wierszy danych i może 10 kluczy.
Ale chciałbym wiedzieć, czy jest sposób na to zrobić z wbudowanymi funkcjami PHP.
Spojrzałem na array_intesect_key()
, ale to nie całkiem to robi, ponieważ moja tablica $keys_to_copy
ma moje pożądane klucze jako wartości tablicowe zamiast kluczy.
Ktoś ma jakieś pomysły?
Cheers, B
Dlaczego nie użyjesz '$ keys_to_copy' jako głównej pętli? – Yoshi