Masalah:
Memandangkan tatasusunan PHP bersarang, tentukan cara untuk cekap ekstrak nilai minimum dan maksimum untuk kunci tertentu.
Contoh:
<code class="php">$array = [ [ 'id' => '20110209172713', 'Date' => '2011-02-09', 'Weight' => '200', ], [ 'id' => '20110209172747', 'Date' => '2011-02-09', 'Weight' => '180', ], [ 'id' => '20110209172827', 'Date' => '2011-02-09', 'Weight' => '175', ], [ 'id' => '20110211204433', 'Date' => '2011-02-11', 'Weight' => '195', ], ];</code>
Penyelesaian:
Pilihan 1: Menggunakan array_column() dan min()/max()
Kaedah ini memanfaatkan fungsi array_column() untuk mengekstrak nilai 'Weight' ke dalam tatasusunan berangka. Fungsi min() dan max() kemudiannya digunakan untuk menentukan nilai minimum dan maksimum, masing-masing.
<code class="php">$weights = array_column($array, 'Weight'); $minValue = min($weights); $maxValue = max($weights);</code>
Pilihan 2: Menggunakan array_map()
Sama seperti Pilihan 1, kaedah ini menggunakan array_map() untuk mengekstrak nilai 'Berat'. Walau bagaimanapun, ia memerlukan fungsi tersuai untuk melaksanakan pemetaan.
<code class="php">$weights = array_map(function($item) { return $item['Weight']; }, $array); $minValue = min($weights); $maxValue = max($weights);</code>
Pilihan 3 (tidak digunakan lagi): Menggunakan gelung bersarang
Kaedah ini tidak disyorkan kerana sedia ada agak tidak cekap, terutamanya untuk tatasusunan yang besar.
<code class="php">$minValue = INF; $maxValue = -INF; foreach ($array as $item) { if ($item['Weight'] < $minValue) { $minValue = $item['Weight']; } if ($item['Weight'] > $maxValue) { $maxValue = $item['Weight']; } }</code>
Pilihan 4: Menggunakan array_reduce()
Kaedah ini berguna untuk senario tertentu di mana anda perlu melakukan pengiraan tambahan atau pemprosesan sambil menentukan nilai minimum atau maksimum.
<code class="php">$minValue = array_reduce($array, function($min, $item) { return min($min, $item['Weight']); }, PHP_INT_MAX); $maxValue = array_reduce($array, function($max, $item) { return max($max, $item['Weight']); }, -PHP_INT_MAX);</code>
Atas ialah kandungan terperinci Bagaimana Mencari Nilai Minimum dan Maksimum dengan Cekap dalam Tatasusunan PHP Bersarang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!