Thỏa thuận ở đây là tôi có một mảng với 17 yếu tố. Tôi muốn có được các yếu tố tôi cần trong một thời gian nhất định và loại bỏ chúng vĩnh viễn khỏi mảng.
Đây là mã:
$name = $post['name'];
$email = $post['email'];
$address = $post['address'];
$telephone = $post['telephone'];
$country = $post['country'];
unset[$post['name']];
unset[$post['email']];
unset[$post['address']];
unset[$post['telephone']];
unset[$post['country']];
Có mã là xấu xí, không cần bash. Làm thế nào để tôi làm cho điều này trông đẹp hơn?
Alex
467K197 Huy hiệu vàng865 Huy hiệu bạc975 Huy hiệu Đồng197 gold badges865 silver badges975 bronze badges
Hỏi ngày 25 tháng 10 năm 2011 lúc 5:19Oct 25, 2011 at 5:19
1
Sử dụng
$remove = ['telephone', 'country'];
$removed = array_diff_key[$post, array_flip[$remove]];
3 để xóa$remove = ['telephone', 'country'];
$removed = array_diff_key[$post, array_flip[$remove]];
Bạn có thể sử dụng
$remove = ['telephone', 'country'];
$removed = array_diff_key[$post, array_flip[$remove]];
4 nếu bạn muốn cung cấp một loạt các phím để giữ.Đã trả lời ngày 19 tháng 11 năm 2015 lúc 10:13Nov 19, 2015 at 10:13
Tim timTim
4.1914 Huy hiệu vàng33 Huy hiệu bạc39 Huy hiệu Đồng4 gold badges33 silver badges39 bronze badges
3
Có vẻ như hàm
$remove = ['telephone', 'country'];
$removed = array_diff_key[$post, array_flip[$remove]];
5 sẽ là một công cụ tốt hơn cho những gì bạn đang cố gắng thực hiện [giả sử nó trích xuất tất cả các khóa/giá trị từ một mảng và gán chúng cho các biến có cùng tên với các khóa trong phạm vi cục bộ]. Sau khi bạn trích xuất nội dung, sau đó bạn có thể tháo toàn bộ $remove = ['telephone', 'country'];
$removed = array_diff_key[$post, array_flip[$remove]];
6, giả sử nó không chứa bất cứ thứ gì bạn muốn.Tuy nhiên, để thực sự trả lời câu hỏi của bạn, bạn có thể tạo một mảng các phím bạn muốn xóa và lặp qua, rõ ràng không giải quyết chúng ...
$removeKeys = array['name', 'email'];
foreach[$removeKeys as $key] {
unset[$arr[$key]];
}
... Hoặc bạn có thể trỏ biến vào một mảng mới đã loại bỏ các phím ...
$arr = array_diff_key[$arr, array_flip[$removeKeys]];
... hoặc chuyển tất cả các thành viên mảng cho ________ 17 ...
unset[$arr['name'], $arr['email']];
Đã trả lời ngày 25 tháng 10 năm 2011 lúc 5:20Oct 25, 2011 at 5:20
Alexalexalex
467K197 Huy hiệu vàng865 Huy hiệu bạc975 Huy hiệu Đồng197 gold badges865 silver badges975 bronze badges
3
Hỏi ngày 25 tháng 10 năm 2011 lúc 5:19
Sử dụng
$remove = ['telephone', 'country'];
$removed = array_diff_key[$post, array_flip[$remove]];
3 để xóaBạn có thể sử dụng
$remove = ['telephone', 'country'];
$removed = array_diff_key[$post, array_flip[$remove]];
4 nếu bạn muốn cung cấp một loạt các phím để giữ.$array = array["key1", "key2", "key3"];
Đã trả lời ngày 19 tháng 11 năm 2015 lúc 10:13
unset[$array];
Tim tim
unset[$array["key1"]];
4.1914 Huy hiệu vàng33 Huy hiệu bạc39 Huy hiệu Đồng
unset[$array["key1"], $array["key2"], $array["key3"] ....] and so on.
Có vẻ như hàm
$remove = ['telephone', 'country'];
$removed = array_diff_key[$post, array_flip[$remove]];
5 sẽ là một công cụ tốt hơn cho những gì bạn đang cố gắng thực hiện [giả sử nó trích xuất tất cả các khóa/giá trị từ một mảng và gán chúng cho các biến có cùng tên với các khóa trong phạm vi cục bộ]. Sau khi bạn trích xuất nội dung, sau đó bạn có thể tháo toàn bộ $remove = ['telephone', 'country'];
$removed = array_diff_key[$post, array_flip[$remove]];
6, giả sử nó không chứa bất cứ thứ gì bạn muốn.
Tuy nhiên, để thực sự trả lời câu hỏi của bạn, bạn có thể tạo một mảng các phím bạn muốn xóa và lặp qua, rõ ràng không giải quyết chúng ...
... Hoặc bạn có thể trỏ biến vào một mảng mới đã loại bỏ các phím ...12 gold badges50 silver badges51 bronze badges
... hoặc chuyển tất cả các thành viên mảng cho ________ 17 ...Aug 1, 2014 at 8:25
Đã trả lời ngày 25 tháng 10 năm 2011 lúc 5:20CodingDaily
Alexalex4 silver badges2 bronze badges
Có một cách khác tốt hơn là các ví dụ trên. Nguồn: //php.net/manual/en/function.unset.php
$vars = array['name', 'email', 'address', 'phone']; /* needed variables */
foreach [$vars as $var] {
${$var} = $_POST[$var]; /* create variable on-the-fly */
unset[$_POST[$var]]; /* unset variable after use */
}
Thay vì lặp lại toàn bộ mảng và giải quyết tất cả các phím của nó, bạn có thể giải nén nó một lần như vậy:
Mảng ví dụ:
Đối với toàn bộ mảng:Dec 2, 2013 at 11:17
2
$remove = ['telephone', 'country'];
$removed = array_diff_key[$post, array_flip[$remove]];
0Cho các phím độc đáo:Jan 12, 2021 at 20:09
Đối với nhiều khóa trong một mảng:ahmedkandil
Tôi hy vọng điều này sẽ giúp bạn trong sự phát triển của bạn.3 silver badges6 bronze badges
1
Cướp
$remove = ['telephone', 'country'];
$removed = array_diff_key[$post, array_flip[$remove]];
14.88912 Huy hiệu vàng 50 Huy hiệu bạc51 Huy hiệu Đồng
$remove = ['telephone', 'country'];
$removed = array_diff_key[$post, array_flip[$remove]];
2Đã trả lời ngày 1 tháng 8 năm 2014 lúc 8:25May 29 at 14:20