35
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Cách nhanh nhất để chuyển đổi một mảng đơn giản thành một mảng kết hợp trong PHP là gì để các giá trị có thể được kiểm tra trong isset[$array[$value]]
?
I E. Cách nhanh nhất để thực hiện chuyển đổi sau:
$array = array[1, 2, 3, 4, 5];
$assoc = array[];
foreach [$array as $i => $value] {
$assoc[$value] = 1;
}
DREFTYMAC
30.4K26 Huy hiệu vàng116 Huy hiệu bạc178 Huy hiệu đồng26 gold badges116 silver badges178 bronze badges
Khi được hỏi ngày 27 tháng 5 năm 2011 lúc 14:04May 27, 2011 at 14:04
1
Mã của bạn là tương đương chính xác của:
$assoc = array_fill_keys[array[1, 2, 3, 4, 5], 1]; // or
$assoc = array_fill_keys[range[1, 5], 1];
array_flip[]
, trong khi nó có thể hoạt động cho mục đích của bạn, nó không giống nhau.
Php Ref: array_fill_keys[]
, array_flip[]
Joan
5796 Huy hiệu bạc18 Huy hiệu Đồng6 silver badges18 bronze badges
Đã trả lời ngày 27 tháng 5 năm 2011 lúc 14:31May 27, 2011 at 14:31
AXELALIX AXELALIXAlix Axel
149K92 Huy hiệu vàng390 Huy hiệu bạc495 Huy hiệu Đồng92 gold badges390 silver badges495 bronze badges
2
array_flip[]
đang làm chính xác điều đó: is exactly doing that:
Array_flip [] Trả về một mảng theo thứ tự lật, tức là các khóa từ trans trở thành giá trị và giá trị từ trans trở thành khóa. returns an array in flip order, i.e. keys from trans become values and values from trans become keys.
Lưu ý rằng các giá trị của trans cần phải là các khóa hợp lệ, tức là chúng cần phải là số nguyên hoặc chuỗi. Một cảnh báo sẽ được phát ra nếu một giá trị có loại sai và cặp khóa/giá trị trong câu hỏi sẽ không được lật.will not be flipped.
Nếu một giá trị có một số lần xuất hiện, khóa mới nhất sẽ được sử dụng làm giá trị của nó và tất cả các giá trị khác sẽ bị mất.
Nhưng ngoài ra, chỉ có một loại mảng trong PHP. Ngay cả các mảng số ["đơn giản", như bạn gọi nó] là kết hợp.
Đã trả lời ngày 27 tháng 5 năm 2011 lúc 14:08May 27, 2011 at 14:08
Felix Klingfelix KlingFelix Kling
771K172 Huy hiệu vàng1069 Huy hiệu bạc1116 Huy hiệu Đồng172 gold badges1069 silver badges1116 bronze badges
3
Nếu bất cứ ai vẫn đang tự hỏi làm thế nào để làm điều này, thì có một giải pháp dễ dàng hơn cho việc này bằng cách sử dụng chức năng Array_Combine.
$array = array[1, 2, 3, 4, 5];
$assoc = array_combine[$array,$array];
Đã trả lời ngày 20 tháng 11 năm 2018 lúc 8:37Nov 20, 2018 at 8:37
3
Đơn giản chỉ cần sử dụng logic này
$var1 = json_encode[$arr1, JSON_FORCE_OBJECT];
$var1 = json_decode[$var1];
Trong đó $ ARR1 là mảng phải được chuyển đổi thành mảng kết hợp. Điều này có thể đạt được bằng json_encode và json_decode giống nhau
Đã trả lời ngày 14 tháng 5 năm 2018 lúc 13:02May 14, 2018 at 13:02
ThyagithyagiThyagi
1821 Huy hiệu bạc6 Huy hiệu đồng1 silver badge6 bronze badges
function simple_to_associative[$array] {
$new_array = [];
$i = 0;
$last_elem = end[$array];
$nr_elems = count[$array];
foreach [$array as $index=>$value] {
if[$i % 2 == 0 && $last_elem == $value] {
$new_array[$value] = '';
} elseif[$i % 2 == 0] {
$new_array[$value] = $array[$index + 1];
}
$i++;
}
return $new_array;
}
Sẽ làm việc trên bất kỳ mảng đơn giản của các yếu tố không giới hạn.
Đã trả lời ngày 18 tháng 7 năm 2019 lúc 16:06Jul 18, 2019 at 16:06
AdrianadrianAdrian
2.2213 huy hiệu vàng33 Huy hiệu bạc71 Huy hiệu đồng3 gold badges33 silver badges71 bronze badges